ZOJ 2423
来源:互联网 发布:网络协议组成部分为() 编辑:程序博客网 时间:2024/06/08 13:50
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1423
预处理,动态规划的思想,处理的时候要把每一行的空格补全(处理成一个矩形),在处理的时候才方便,最后去掉多余的空格。
但是在字符串处理的时候错了很多次,string 好像不能直接对末尾的那个字符串进行这样的赋值 str[i][j]='\0';。
下面是AC代码:
#include<iostream>#include<string>#include<cmath>using namespace std;string str[8][1000];int main(){int n,i,j,k;str[1][0]="X";int len;for(i=2;i<=7;i++){len=pow(3,i-2);for(j=0;j<len;j++){str[i][j]=str[i-1][j];}for(j=0;j<len;j++){for(k=0;k<str[i-1][0].size();k++)str[i][j]+=" ";}for(j=0;j<len;j++){str[i][j]+=str[i-1][j];}for(j=len;j<2*len;j++){for(k=0;k<str[i-1][0].size();k++)str[i][j]+=" ";}for(j=len;j<2*len;j++){str[i][j]+=str[i-1][j-len];}for(j=len;j<2*len;j++){for(k=0;k<str[i-1][0].size();k++)str[i][j]+=" ";}for(j=2*len;j<3*len;j++){str[i][j]=str[i-1][j-2*len];}for(j=2*len;j<3*len;j++){for(k=0;k<str[i-1][0].size();k++)str[i][j]+=" ";}for(j=2*len;j<3*len;j++){str[i][j]+=str[i-1][j-2*len];} }//for() for (i=1; i<=7; i++) for ( j=0, k; j<pow(3,i-1); j++) { string tmp=str[i][j]; for (k=tmp.length()-1; k>=0; k--) if (tmp[k]!=' ') break; str[i][j]=str[i][j].substr(0,k+1); // str[i][j].assign(tmp, 0, k+1); //这个地方错了无数次啊。左边那两种方法都可以,但是为什么不可以写成:str[i][j+1]='\0'呢; } //估计是sting是对象,不能直接对对象操作??while(cin>>n&&n>=0){if(n==0)cout<<"-"<<endl;else{for(i=0;i<pow(3,n-1);i++)cout<<str[n][i]<<endl;cout<<"-"<<endl;}}return 0;}
- ZOJ 2423
- ZOJ-2423
- [ZOJ 2423] Fractal
- zoj 2423 Fractal
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- 基于LBP的背景建模算法
- 对于.7z
- Ubuntu下创删除文件及文件夹,强制清空回收站方建、重命名、法
- jquery(五)大话jquery选择器
- PHP常用函数
- ZOJ 2423
- 怎样把网站变为灰色
- php多进程
- 字典树 (解析加模版)
- 自定义listview的显示(重写Adapter)
- krpano Flash Panorama Viewer应用及介绍
- UpdateWindow和Invalidate
- Memory Analysis for Android Applications
- ActionScript最新3D引擎项目(转载)