无语,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 ;
}

C++-POJ1016-Numbers That Count的更多相关文章

  1. POJ1016 Numbers That Count

    题目来源:http://poj.org/problem?id=1016 题目大意: 对一个非负整数定义一种运算(inventory):数这个数中各个数字出现的次数,然后按顺序记录下来.比如“55531 ...

  2. poj 1016 Numbers That Count

    点击打开链接 Numbers That Count Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17922   Accep ...

  3. B - Numbers That Count

    Description        "Kronecker's Knumbers" is a little company that manufactures plastic di ...

  4. Numbers That Count POJ - 1016

    "Kronecker's Knumbers" is a little company that manufactures plastic digits for use in sig ...

  5. POJ 1016 Numbers That Count 不难,但要注意细节

    题意是将一串数字转换成另一种形式.比如5553141转换成2个1,1个3,1个4,3个5,即21131435.1000000000000转换成12011.数字的个数是可能超过9个的.n个m,m是从小到 ...

  6. Random Numbers Gym - 101466K dfs序+线段树

    Tamref love random numbers, but he hates recurrent relations, Tamref thinks that mainstream random g ...

  7. 2017 ACM-ICPC, Universidad Nacional de Colombia Programming Contest K - Random Numbers (dfs序 线段树+数论)

    Tamref love random numbers, but he hates recurrent relations, Tamref thinks that mainstream random g ...

  8. Java中有关Null的9件事

    对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常 (NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我 ...

  9. POJ题目排序的Java程序

    POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...

  10. LeetCode "477. Total Hamming Distance"

    Fun one.. the punch line of this problem is quite common in Bit related problems on HackerRank - vis ...

随机推荐

  1. TCP 与 UDP 浅谈

    TCP与UDP区别总结:1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不重 ...

  2. cocos studio 中交互性

    cocos studio 属性->常规->交互性,勾选之后相当于代码中的setTouchEnabled(true)

  3. 使用Python爬虫整理小说网资源-自学

    第一次接触python,原本C语言的习惯使得我还不是很适应python的语法风格.希望读者能够给出建议. 相关的入门指导来自以下的网址:https://blog.csdn.net/c406495762 ...

  4. nginx反向代理(1)

    目录 反向代理 概述 nginx代理 proxy_pass 加与不加/ ================================================================ ...

  5. 中间件c10k问题

    中间件c10k问题 没有使用iocp/epoll/kqueue通讯的中间件,中间件就算部署在拥有多核CPU的强大服务器上,最头痛的问题是C10K问题. 中间件没有办法通过优化程序,提升CPU利用率来处 ...

  6. 04、extern引用全局变量

    这里强调一点就是关extern的声明: extern在声明中最主要的作用就是告诉编译器别的文件引用了全局变量XXXX. 举例: 有一个工程名字叫 Project1. Project1下面有两个.cpp ...

  7. 9Front fqa 目录

    9Front System 9Front 常见问答(fqa) 注意! 9front dash1 手册是由 9front 用户编写的. 这些用户有能做的,有不能写的:那些不能写的写了这本电子杂志.-- ...

  8. 插入jupyter notebook代码

    <iframe src="https://nbviewer.jupyter.org/gist/gaowenxin95/53408e0f1ce268430efaad2cb1f0ca4f& ...

  9. Visual Studio 问题汇总

    VS2019 16.3.6   1   JSON 文件没有进行格式化验证 开发时运行正常,部署在IIS中有错误提示. 2  .NET Core 3.0 没有提供中文包 所有注释都是英文的.

  10. Nginx 配置Websocket

    Nginx反向代理配置websocket nginx.org 官网推荐如下的配置,也可以直接看官网:http://nginx.org/en/docs/http/websocket.html http ...