POJ-1016 Numbers That Count
来源:互联网 发布:js replaceall 编辑:程序博客网 时间:2024/05/06 22:11
题目大意:对于一个由数字组成的串,可以变换为c1 d1 c2 d2 ... ck dk形式的串,表示原串中数字di出现了ci次。若变换前后的串相等,则称该串具有self-inventorying属性。比如31123314。
对某一串n,连续进行若干次该变换可能出现以下某一种情况:
1.立即出现self-inventorying属性
2.变换i次后出现self-inventorying属性
3.变换若干次后出现长度为k的循环变换(k>=2)
对于一给定的字符串判断其是否具有以上属性之一。
题目链接:http://poj.org/problem?id=1016
模拟即可。注意ci可能大于10。代码中flag1标记1、2属性,flag2标记3属性。
#include <stdio.h>#include <iostream>#include <string.h>#include <math.h>#include <algorithm>#include <string>using namespace std;#define MAXN 100#define MAXM 16char a[MAXM][MAXN];int tmp[10];int main(){ while(scanf("%s",a[0]),strcmp(a[0],"-1")) { int flag1=-1; int flag2=-1; for(int i=1;i<=15;i++) { memset(tmp,0,sizeof(tmp)); for(int j=0;a[i-1][j]!='\0';j++) { tmp[a[i-1][j]-'0']++; } int t=0; for(int j=0;j<10;j++) { if(tmp[j]>=10) { a[i][t++]=tmp[j]/10+'0'; a[i][t++]=tmp[j]%10+'0'; a[i][t++]=j+'0'; } else if(tmp[j]>0) { a[i][t++]=tmp[j]+'0'; a[i][t++]=j+'0'; } } a[i][t]='\0'; } for(int i=0;i<15;i++) { if(!strcmp(a[i],a[i+1])) { flag1=i; break; } } if(flag1==-1) { for(int i=0;i<=15;i++) { for(int j=0;j<=i-2;j++) { if(!strcmp(a[i],a[j])) { flag2=i-j; break; } } if(flag2!=-1) break; } } if(!flag1) printf("%s is self-inventorying\n",a[0]); else if(flag1>0) printf("%s is self-inventorying after %d steps\n",a[0],flag1); else if(flag2!=-1) printf("%s enters an inventory loop of length %d\n",a[0],flag2); else printf("%s can not be classified after 15 iterations\n",a[0]); } return 0;}
0 0
- POJ 1016 Numbers That Count
- POJ 1016 Numbers That Count
- poj 1016 Numbers That Count
- POJ 1016 Numbers That Count
- POJ 1016 Numbers That Count
- poj 1016 Numbers That Count
- POJ 1016 Numbers That Count
- [POJ][1016]Numbers That Count
- POJ 1016 - Numbers That Count
- POJ 1016 Numbers That Count
- POJ-1016 Numbers That Count
- POJ 1016: Numbers That Count
- POJ 1016--Numbers That Count
- poj 1016 Numbers That Count
- POJ 1016--Numbers That Count
- POJ-1016-Numbers That Count
- POJ 1016(Numbers That Count)解题纠错
- POJ 1016 Numbers That Count 模拟
- 泛型编程~~好思想好思想
- 位运算
- 《精通开关电源设计》笔记
- Nutch的日志系统
- UVALive 3387 || HOJ 2196 Job Scheduling by Open Bidding
- POJ-1016 Numbers That Count
- hdu3374---String Problem
- 【SICP练习】29 练习1.35
- HTML页面间传递参数
- MOS管驱动电阻怎么选择?
- 【SICP练习】30 练习1.36
- 【SICP练习】31 练习1.37
- 完整cmm解释器构造实践(四):语义分析与代码生成
- 【SICP练习】32 练习1.38