Poj 1016

传送门:http://poj.org/problem?id=1016

数字字符串的压缩,比较

注意指针的使用,注意细节

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4
 5 void inventory(char *s,char *d){
 6     int n[10]={0};
 7     for(int i=0;s[i];i++){
 8         n[s[i]-‘0‘]++;
 9     }
10     int j=0;
11     for(int i=0;i<10;i++){
12         if(n[i]){
13             if(n[i]<10){
14                 d[j++]=n[i]+‘0‘;
15                 d[j++]=i+‘0‘;
16             }
17             else{
18                 d[j++]=n[i]/10+‘0‘;
19                 d[j++]=n[i]%10+‘0‘;
20                 d[j++]=i+‘0‘;
21             }
22         }
23     }
24     d[j]=‘\0‘;
25     return;
26 }
27
28 int main(){
29     char num[20][85];
30     while(cin>>num[0]){
31         if(!strcmp(num[0],"-1")){//相同为0
32             break;
33         }
34         for(int k=0;k<17;k++){
35             inventory(num[k],num[k+1]);
36         }
37         if(!strcmp(num[0],num[1])){
38             cout<<num[0]<<" is self-inventorying"<<endl;
39             continue;
40         }
41         bool flag1=false;
42         bool flag2=false;
43         for(int i=1;i<=15;i++){
44             if(!strcmp(num[i],num[i+1])){
45                 cout<<num[0]<<" is self-inventorying after "<<i<<" steps "<<endl;
46                 flag1=true;
47                 break;
48             }
49         }
50         if(!flag1){
51             for(int i=14;i>=0;i--){
52                 if(!strcmp(num[15],num[i])){
53                     cout<<num[0]<<" enters an inventory loop of length "<<15-i<<endl;
54                     flag2=true;
55                     break;
56                 }
57             }
58         }
59         if(!flag1&&!flag2){
60             cout<<num[0]<<" can not be classified after 15 iterations"<<endl;
61         }
62     }
63 } 

70,80两个边缘数字,70刚好在15步形成循环,80步在16步形成循环

时间: 2024-10-31 15:06:44

Poj 1016的相关文章

POJ 1016 模拟字符串

Numbers That Count Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20396   Accepted: 6817 Description "Kronecker's Knumbers" is a little company that manufactures plastic digits for use in signs (theater marquees, gas station price

POJ 1016 Numbers That Count 模拟题目

Description "Kronecker's Knumbers" is a little company that manufactures plastic digits for use in signs (theater marquees, gas station price displays, and so on). The owner and sole employee, Klyde Kronecker, keeps track of how many digits of e

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

POJ 3449 Geometric Shapes --计算几何,线段相交

题意: 给一些多边形或线段,输出与每一个多边形或线段的有哪一些多边形或线段. 解法: 想法不难,直接暴力将所有的图形处理成线段,然后暴力枚举,相交就加入其vector就行了.主要是代码有点麻烦,一步一步来吧. 还有收集了一个线段旋转的函数. Vector Rotate(Point P,Vector A,double rad){ //以P为基准点把向量A旋转rad return Vector(P.x+A.x*cos(rad)-A.y*sin(rad),P.y+A.x*sin(rad)+A.y*co

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目(转)

http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (