hdu 2091 空心三角形
2016-04-25 01:08
375 查看
运用了上篇博客(dp数塔)中提到的逆向思维,从底下往上依次向二维数组(对于许多作图题,二维数组是个非常实用的自定义数据)中填入字符c,(当然,不逆向也可以,但是介于我要多多熟悉逆向思考,所以这里就逆向了)。
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAX 100
using namespace std;
char a[MAX][MAX];
int main()
{
//freopen("result.txt","w",stdout);
int cnt=1;
char c;
while(cin>>c)
{
if(c=='@')break;
int n;
cin>>n;
if(cnt>1) cout<<endl;
for(int i=0; i<2*n-1; i++){
memset(a[i],' ',sizeof(a[i]));
a[i][2*n-1]=0;
}
a[0]
=0;
;
for(int i=0; i<2*n-1; i++)
a[n-1][i]=c;
for(int i=n-1;i>0;i--)
{
a[i-1][i+n-1]=0;
a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
}
;
for(int i=0; i<n; i++)
cout<<a[i]<<endl;
cnt++;
}
//fclose(stdout);
return 0;
}
(1).一开始我开了个45*45大小的数组(数据),提交后就Runtime Error(ACCESS_VIOLATION)
了,这个错误,一般原因就是数组开小了,运行过程中超出了,找了找,原因就在于i<2*n-1,而n<42,乘个2肯定超啊,后来改为100就碰上了PE,这题目要求也是不太一样,要第一例之后每一例输入后输出一空行,还好看了discuss。
(2).本题实现代码(算法):
for(int i=n-1;i>0;i--)
{
a[i-1][i+n-1]=0;
a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
}
通过例子总结出a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
a[i-1][i+n-1]=0;用来控制格式(每行末没有空格)
(3).随着做题数目的增加,愈发意识到那条编程的黄金定律:数据+算法=程序
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAX 100
using namespace std;
char a[MAX][MAX];
int main()
{
//freopen("result.txt","w",stdout);
int cnt=1;
char c;
while(cin>>c)
{
if(c=='@')break;
int n;
cin>>n;
if(cnt>1) cout<<endl;
for(int i=0; i<2*n-1; i++){
memset(a[i],' ',sizeof(a[i]));
a[i][2*n-1]=0;
}
a[0]
=0;
;
for(int i=0; i<2*n-1; i++)
a[n-1][i]=c;
for(int i=n-1;i>0;i--)
{
a[i-1][i+n-1]=0;
a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
}
;
for(int i=0; i<n; i++)
cout<<a[i]<<endl;
cnt++;
}
//fclose(stdout);
return 0;
}
(1).一开始我开了个45*45大小的数组(数据),提交后就Runtime Error(ACCESS_VIOLATION)
了,这个错误,一般原因就是数组开小了,运行过程中超出了,找了找,原因就在于i<2*n-1,而n<42,乘个2肯定超啊,后来改为100就碰上了PE,这题目要求也是不太一样,要第一例之后每一例输入后输出一空行,还好看了discuss。
(2).本题实现代码(算法):
for(int i=n-1;i>0;i--)
{
a[i-1][i+n-1]=0;
a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
}
通过例子总结出a[i-1][n-i]=c;
a[i-1][i+n-2]=c;
a[i-1][i+n-1]=0;用来控制格式(每行末没有空格)
(3).随着做题数目的增加,愈发意识到那条编程的黄金定律:数据+算法=程序
相关文章推荐
- Feescale K64开发笔记1: 开发环境的建立
- 14串聚合物锂电池保护板和电路图(带均衡功能)
- StyleBundle压缩会影响expression
- HDU 5512 Pagodas 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
- Android中的RxJava,Retrofit,MVP的使用
- c++第四次作业—求1000以内的偶数之和
- Openstack 远程调试 - pycharm
- php foreach
- apache commons fileupload 团队
- Chromium网页Layer Tree绘制过程分析
- IE8中嵌入iframe,造成HighChart发生错误
- AngularJS 世界------AngularJS 指令手册
- 用户管理 查询优化 日志
- DML 事务 隔离级别 存储引擎对比
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- MySQL开发
- Linux之文件的查找
- MySQL 安装方式 @Doyle
- Java多线程简析——Synchronized(同步锁)、Lock以及线程池
- ROS的***设置—PPTP借线操作