【题解】P1000 超级玛丽游戏 题解
前言
https://www.luogu.com.cn/problem/P1000
这是洛谷的P1000
,也是第一题,是一道关于洛谷的试机题。
注意
在本题,你需要注意的点有以下:
- 注意选择的语言
- 注意输出的具体内容,多一个字符、少一个字符都有可能会导致不同的结果
- 换行符不能使用
\r\n
C/C++ - 普通解法
核心思想
你可以定义一个string
类型的数组,将下面的内容,按行保存:
********************####....#.#..###.....##....###.......###### ### ###........... #...# #...###*####### #.#.# #.#.#####*******###### #.#.# #.#.#...#***.****.*###.... #...# #...#....**********##..... ### ###....**** *****....#### ########## ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
C/C++通样程序
#include<stdio.h>
int main() {printf(" ********\n"" ************\n"" ####....#.\n"" #..###.....##....\n"" ###.......###### ### ###\n"" ........... #...# #...#\n"" ##*####### #.#.# #.#.#\n"" ####*******###### #.#.# #.#.#\n"" ...#***.****.*###.... #...# #...#\n"" ....**********##..... ### ###\n"" ....**** *****....\n"" #### ####\n"" ###### ######\n""##############################################################\n""#...#......#.##...#......#.##...#......#.##------------------#\n""###########################################------------------#\n""#..#....#....##..#....#....##..#....#....#####################\n""########################################## #----------#\n""#.....#......##.....#......##.....#......# #----------#\n""########################################## #----------#\n""#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n""########################################## ############\n");return 0;
}
C++ - R转换
核心思想
自从C++更新11标准后,我们便可以使用原始字符串 Raw String Literal的特性来输出原始字符串,这样就可以原样不动输出某一个可能包含换行、反斜杠的字符串。
关于如何使用,我们只需要定义一个string
字符串,让他等于R的超级玛丽。
类似于这样:
string s=R"( ********************####....#.#..###.....##....###.......###### ### ###........... #...# #...###*####### #.#.# #.#.#####*******###### #.#.# #.#.#...#***.****.*###.... #...# #...#....**********##..... ### ###....**** *****....#### ########## ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############)"
你需要注意,这种方法仅适用于C++,并不适用于C
程序
#include<bits/stdc++.h>
using namespace std;
string s=R"( ********************####....#.#..###.....##....###.......###### ### ###........... #...# #...###*####### #.#.# #.#.#####*******###### #.#.# #.#.#...#***.****.*###.... #...# #...#....**********##..... ### ###....**** *****....#### ########## ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############)";
int main(){cout<<s;
}