P1000 题解
欢迎来到 AstralNahida 的题解频道!
这题我会给出三种解法。
首先上场的是 PHP,我们知道,PHP 会直接输出标签外的字符,所以我们直接把需要输出的东西复制粘贴即可。
AC Code:
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
接下来登场的是 C++。
第一种办法就是老老实实一行一行地输出。
AC Code:
cpp
#include <iostream>
using std::cout;
int main(void) {
cout << " ********\n";
cout << " ************\n";
cout << " ####....#.\n";
cout << " #..###.....##....\n";
cout << " ###.......###### ### ###\n";
cout << " ........... #...# #...#\n";
cout << " ##*####### #.#.# #.#.#\n";
cout << " ####*******###### #.#.# #.#.#\n";
cout << " ...#***.****.*###.... #...# #...#\n";
cout << " ....**********##..... ### ###\n";
cout << " ....**** *****....\n";
cout << " #### ####\n";
cout << " ###### ######\n";
cout << "##############################################################\n";
cout << "#...#......#.##...#......#.##...#......#.##------------------#\n";
cout << "###########################################------------------#\n";
cout << "#..#....#....##..#....#....##..#....#....#####################\n";
cout << "########################################## #----------#\n";
cout << "#.....#......##.....#......##.....#......# #----------#\n";
cout << "########################################## #----------#\n";
cout << "#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n";
cout << "########################################## ############\n";
return 0;
}
这样可以轻松通过。
第二种办法是使用 C++11 加入的原始字符串字面量 ,形如 R"delimiter(原始字符串内容)delimiter"
,其主要作用是:
-
让你可以直接书写字符串,无需对诸如反斜杠
\
、双引号"
等特殊字符进行转义处理,这样能让字符串的表达更加直观清晰。并且,在这样的字符串中,可以直接换行,无需使用\n
。 -
其中
delimiter
是分隔符,两处必须完全相同。这是个可写可不写的部分,如果写上,那么原始字符串中即使出现)
也可以正常处理。
当然,我们在这里只需要知道第一条作用就好了。我们把要求输出的东西直接复制到 R"()"
的括号内部即可。
AC Code:
cpp
#include <iostream>
int main() {
std::cout << R"( ********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############ )";
return 0;
}
好啦,P1000 的题解就到这里了。祝各位 rp++ 喵。
Update:
- 2025/05/10 17:19 修改了一点小错误。