无语,15步产生16个数,植树原理啊!

大水题,居然wa了好几次,唉,自己的问题。

略略略,就要封装成结构体,略略略。

 #include <set>
#include <map>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
struct String {
char s[];
int len_s,len_b;
int a[],b[];
void init() {
memset(s,,sizeof(s));
memset(a,,sizeof(a));
memset(b,,sizeof(b));
len_s=len_b=;
}
bool read() {
scanf("%s",s+);
len_s=strlen(s+);
if(s[]=='-')return false;
return true;
}
void calc() {
for(int i=; i<=len_s; i++)a[s[i]-'']++;
for(int i=; i<=; i++)
if(a[i]) {
if(a[i]<){
b[++len_b]=a[i];
b[++len_b]=i;
}
else {
b[++len_b]=a[i]/;
b[++len_b]=a[i]%;
b[++len_b]=i;
}
}
}
void get(String A) {
len_s=A.len_b;
for(int i=; i<=len_s; i++)
s[i]=A.b[i]+'';
}
void print_s() {for(int i=; i<=len_s; i++)cout<<s[i];}
};
bool comp(String A,String B) {
if(A.len_s!=B.len_s)return false;
for(int i=; i<=A.len_b; i++)if(A.s[i]!=B.s[i])return false;
return true;
}
bool self(String A) {
if(A.len_s!=A.len_b)return false;
for(int i=; i<=A.len_s; i++)if(A.s[i]-''!=A.b[i])return false;
return true;
}
String a[],A;
int main() {
while(A.read()) {
A.calc(),a[]=A;
for(int i=; i<=; i++) a[i].get(a[i-]),a[i].calc();
int ans,flag=;
for(int i=; i<=; i++) {
if(flag)break;
if(self(a[i]))
{flag=;ans=i-;break;}
for(int j=i+; j<=; j++)
if(comp(a[i],a[j]))
{ans=j-i;flag=;break;}
}
A.print_s();
if(flag==)
if(ans==)cout<<" is self-inventorying"<<endl;
else cout<<" is self-inventorying after "<<ans<<" steps"<<endl;
else if(flag==)cout<<" enters an inventory loop of length "<<ans<<endl;
else cout<<" can not be classified after 15 iterations"<<endl;
A.init();for(int i=;i<=;i++)a[i].init();
}
return ;
}

最新文章

  1. Get与Post数据长度的限制
  2. android布局学习之相对布局(RelativeLayout)
  3. Scrapy源码学习(二)
  4. win7 telnet命令无法使用
  5. crud springmvc
  6. css定义的权重
  7. Java String.indexOf() 函数用法小结
  8. “无文件”恶意软件的威力:悄无声息一夜之间从ATM机中窃取80万美元
  9. vue 监听路由变化
  10. poi 设置单元格公式
  11. Windows 添加永久静态路由
  12. 艾妮记账本微信小程序开发(失败版)
  13. 使用 Notification API 开启浏览器桌面提醒
  14. 前端基础开发之HTML
  15. mariadb的flashback到底怎么样???防误删可以,但算不上真正的闪回--再看mariadb 10.3的System-Versioned Tables
  16. 反转链表 Reverse Linked List
  17. 【Python】torrentParser1.02
  18. Java泛型方法与数据查询
  19. java基础26 线程的通讯;wait()、notify()、notifyAll()等方法
  20. 基于 Docker 的 Zabbix 微服务系统

热门文章

  1. CF840D[Destiny] [主席树板子]
  2. 2020 CCPC Wannafly Winter Camp Day1 Div.1&amp;amp F
  3. 关于 setw() 函数(C++)
  4. uva1428树状数组
  5. c++ md5算法实现(转)
  6. 回溯经典(指定位置N皇后问题)
  7. Word报表生成
  8. 安装oracle11gR2
  9. IP地址分类及其相关计算问题
  10. Python基础概念