话说上过洛谷的都知道,有一道经典例题P1000超级马里奥,这一题,可以说是非常简单非常经典,但是就算如此,还是可以人才辈出,我是个比较循规蹈矩的人(雾),所以我的代码就比较平常,也就是直接输出了所要求的超级马里奥的图片,那道题题目是这样的

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                ********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
一般人都会写个cout+endl来实现输出的操作,但是,网友的力量是强大的,只有想不到没有做不到的,
接下来我介绍几种 ,注意,非原创 比如这位大佬,看之前先来一波膜拜orz,orz;
#include <bits/stdc++.h>
using namespace std;
int mp[][];
int last[];
int n = , m = ;
// 在[x1-x2, y1-y2]绘制ch
void draw(int x1, int y1, int x2, int y2, char ch = '#'){
for(int i = x1; i <= x2; i++)
for(int j = y1; j <= y2; j++)
mp[i][j] = ch;
}
// 在[x1, y1]绘制ch
void draw(int x1, int y1, char ch = '#'){
draw(x1, y1, x1, y1, ch);
}
// 以[x, y]为左上角绘制泥土
void drawland(int x, int y){
draw(x, y, x+, y+);
for(int i = x+; i < x+; i+=)
draw(i, y+, i, y+, '.');
draw(x+, y+); draw(x+, y+);
draw(x+, y+); draw(x+, y+);
draw(x+, y+); draw(x+, y+);
draw(x+, y+); draw(x+, y+);
}
// 以[x, y]为左上角绘制小岛
void drawisland(int x, int y){
draw(x, y, x+, y+);
draw(x+, y+, x+, y+, '-');
draw(x+, y+, x+, y+);
draw(x+, y+, x+, y+, '-');
}
// 以[x, y]为左上角绘制金币
void drawcoin(int x, int y){
draw(x, y, x+, y+);
draw(x+, y+, x+, y+, '.');
draw(x+, y+, x+, y+);
draw(x, y, ' '); draw(x+, y, ' ');
draw(x, y+, ' '); draw(x+, y+, ' ');
}
// 以[x, y]为左上角绘制马里奥
void drawman(int x, int y){
draw(x, y+, x, y+, '*'); x++;
draw(x, y+, x, y+, '*'); x++;
draw(x, y+, x, y+); draw(x, y+, x, y+, '.'); draw(x, y+); x++;
draw(x, y+, x, y+); draw(x, y+, x, y+, '.');
draw(x, y+, x, y+, '.'); draw(x, y+, x, y+, '.'); x++;
draw(x, y+, x, y+); draw(x, y+, x, y+, '.'); x++;
draw(x, y+, x, y+, '.'); x++;
draw(x, y+, x, y+); draw(x, y+, '*'); x++;
draw(x, y+, x, y+); draw(x, y+, x, y+, '*'); x++;
draw(x, y, x+, y+, '.'); draw(x, y+, x+, y+, '*');
draw(x, y+); draw(x, y+, x+, y+); draw(x+, y+, '.');
draw(x+, y+, x+, y+, ' '); draw(x, y+, '.'); draw(x, y+, '.');
draw(x+, y, x+, y+); draw(x+, y+, x+, y+, ' ');
draw(x+, y, x+, y+, ' '); draw(x+, y+, x+, y+, ' ');
}
// 打印输出
void printscreen(){
for(int i = ; i <= n; i++){
last[i] = m;
while(mp[i][last[i]] == ' ')
last[i]--;
}
for(int i = ; i <= n; i++,puts(""))
for(int j = ; j <= last[i]; j++)
putchar(mp[i][j]);
}
int main(){
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
mp[i][j] = ' ';
// 绘制人
drawman(, );
// 绘制他脚下的三块泥土
drawland(, ); drawland(, ); drawland(, );
// 绘制金币下面的那个岛屿
drawisland(, );
// 绘制两个金币
drawcoin(, ); drawcoin(, );
// 输出
printscreen();
return ;
}

大致也看完了吧,这个人,不,这位大佬以坐标的方式,一个一个的把字符输出,最后达到了一样的效果,不得不说,这也太强了吧,你也去试试吧(雾)

如果只有这么点我也不会说是人才辈出了,下面这位可以说是暴力出奇迹了(雾)

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<climits>
#include<cfloat>
#include<queue>
#include<cstddef> using namespace std;
char x;
int a[]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};
int main()
{
for(int i = ;i <= ;i++)
{
cout<<(char)a[i];
}
return ;
}

打表。。。

这也未尝不是一种不错的方法,能存下所有的坐标,也是厉害所在啊%%%!这些还不够达到人才辈出,没错,还有优秀的代码优秀的人!

接下来是优秀的人,但看他的代码没什么出众的地方,但是他的题解可以说是很有文化了,我截取他的代码的其中一段的题解

吾有一術。名之曰「画点」。欲行是術。必先得三數。曰「甲」。曰「乙」。曰「字」。乃行是術曰。 施「画」於「甲」。於「乙」。於「甲」。於「乙」。於「字」。 是謂「画点」之術也。 吾有一術。名之曰「画地」。欲行是術。必先得二數。曰「甲」。曰「乙」。乃行是術曰。 加「甲」以八。名之曰「丙」。加「乙」以十三。名之曰「丁」。 施「画」於「甲」。於「乙」。於「丙」。於「丁」。於「井」。 吾有一列。名之曰「戊」。充「戊」以一。以三。以五。以七。 凡「戊」中之「己」。 加「己」以「甲」。名之曰「庚」。加「乙」以一。名之曰「丙」。加「乙」以十二。名之曰「丁」。 施「画」於「庚」。於「丙」。於「庚」。於「丁」。於「点」。 云云。

#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 ;
}

看着题解,心里自愧不如,你说编程不比别人好也就算了,语文也被吊打。。。

今天的内容就只有这些了,在最后,请广大博主帮我看看,这个代码是什么意思?(雾)python学的少,没见过世面(大雾)

import zlib,base64;print zlib.decompress(base64.b64decode('eJylUkEOwCAIu/sKk95Mxv+fN2AsE0S3xR42sRYqUqtHM5TJfsaBQQyQZ3jTGLp+JcqIjBUMSUMYy1Z6EB1J0hCOrhuywnoeXo4gF5U1I0nxJhc3rKSmH2vDd/Ny+nkMa6I3F7xmallrgvRh0K9L4DzLPLZQ9IY2CdekTKNjwK/qqdwK4J7TeZSa/wxtWKjc3W4VjdKdqt2tsIp2q3Y4AbV3oO4=')).decode()

洛谷P1000超级马里奥的神奇解法的更多相关文章

  1. 洛谷 P1000 超级玛丽游戏

    P1000 超级玛丽游戏 题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级 ...

  2. 洛谷P1000 超级玛丽游戏(洛谷新手村1-1-1)

    题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. *** ...

  3. 洛谷 P2677 超级书架 2

    P2677 超级书架 2 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 ...

  4. 洛谷P2667 超级质数 [2017年6月计划 数论05]

    P2667 超级质数 题目背景 背景就是描述,描述就是背景...... 题目描述 一个质数如果从个位开始,依次去掉一位数字,两位数字,三位数字......直到只剩一位数字中间所有剩下的数都是质数,则称 ...

  5. 洛谷P2676 超级书架 题解

    题目传送门 题目一看就是贪心.C++福利来了:sort. 基本思路就是:要使奶牛最少那么肯定高的奶牛先啦. 直接排序一遍(从高到矮)然后while,搞定! #include<bits/stdc+ ...

  6. 洛谷 P2677 超级书架 2 题解

    传送门 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= ...

  7. [洛谷P2174]小Z的神奇数列

    题目大意:有$n(n\leqslant10^6)$个数,$5$种操作: $D\;x:$从数列中删除$x$,相同的数只删除一个 $B:$最大值 $S:$最小值 $M:$输出$max^{min}\pmod ...

  8. 洛谷P1000 超级玛丽游戏

    这道题很简单,就是原样输出,只不过写起来有点恶心!!! code: #include<stdio.h> int main() { printf( " ********\n&quo ...

  9. 洛谷P2677 超级书架 2

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N & ...

随机推荐

  1. Django常见错误总结

    1 ImportError: No module named 'MySQLdb' 解决方法: . 安装pymysql模块 . 在app的__init__.py文件中写入以下内容 import pymy ...

  2. 阿里云系统安装部署Freeswitch

    1.安装vim apt-get install vim 2.修改镜像源 将/etc/apt/source.list的原有源注释掉,添加下面的源: deb http://mirrors.163.com/ ...

  3. derby数据库的了解及使用

    derby数据库 一.简介 Derby 易于管理.当嵌入到客户机应用程序中时, Derby 系统不需要任何管理干预. Derby 是可嵌入的.应用程序可以将数据库管理系统( Database Mana ...

  4. 用磁盘工具刻录MACOSX系统启动盘方法

    些系统盘用Toast 刻录后无法引导,建议使用磁盘工具刻录系统盘 老手可能早知道这了,仅供新手参考 在应用程序-->实用工具里找到磁盘工具,打开. 将DMG文件拖放到磁盘工具窗口,双击DMG文件 ...

  5. iOS(Swift)学习笔记之SnapKit+自定义UI组件

    本文为原创文章,转载请标明出处 1. 通过CocoaPods安装SnapKit platform :ios, '10.0' target '<Your Target Name>' do u ...

  6. 转:zabbix 2.0.6监控cisco交换机 2950 2960s 3560G

    转自: http://blog.chinaunix.net/uid-24250828-id-3806551.html 想在zabbix 上监控交换机端口的流量,找了两天的模板,包括官方的和网友写的.在 ...

  7. Python知识点总结及其介绍链接

    Python 弱引用(不会增加引用计数的引用,可以用来做对象缓存,避免循环引用导致内存无法回收):http://python.jobbole.com/85431/ from future import ...

  8. Nginx_安装

    1. 安装步骤 上传nginx上传nginx安装包到linux 安装gcc 1 yum -y install gcc-c++ gcc 查看是否安装gcc: 1 gcc -v 安装依赖库 1 yum - ...

  9. 自然语言处理NLTK之入门

    环境:window10 + python3 一.安装NLTK pip install nltk # 或者 PyCharm --> File --> Settings --> Proj ...

  10. 一文了解各大图数据库查询语言(Gremlin vs Cypher vs nGQL)| 操作入门篇

    文章的开头我们先来看下什么是图数据库,根据维基百科的定义:图数据库是使用图结构进行语义查询的数据库,它使用节点.边和属性来表示和存储数据. 虽然和关系型数据库存储的结构不同(关系型数据库为表结构,图数 ...