无语,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. c语言中 char* 和 unsigned char* 的区别浅析(转)

    原文:https://blog.csdn.net/guotianqing/article/details/77341657 背景最近在项目中遇到了一个编译警告,是因为定义的变量为char[],而在使用 ...

  2. 1级搭建类108-Oracle 11gR2 SI FS(Windows Server 2019)公开

    Oracle 11gR2 单实例文件系统在Windows Server 2019上的安装 在线查看

  3. 0级搭建类003-CentOS Linux安装 (CentOS 7)公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  4. redis测试题

    1.什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存. ...

  5. File FileStream StreamReader和StreamWriter

    File 静态类 ReadAllBytes 和 WriteAllBytes ,用于一次性全部读取和写入小文件的字节码,                  ReadLine  ReadkAll  用于一 ...

  6. Java Day2(下)

    Java learning_Day2(下) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...

  7. 专项:Vuejs面试题集合

    参考网络资源:https://segmentfault.com/a/1190000012315822 1.active-class是哪个组件的属性? 答:active-class是vue-router ...

  8. [CodeIgniter4]讲解-加载静态页

    讲解 本教程旨在向您介绍CodeIgniter框架和MVC体系结构的基本原理.它将向您展示如何以逐步的方式构造基本的CodeIgniter应用程序. 在本教程中,您将创建一个基本的新闻应用程序.您将从 ...

  9. 栈和队列----最大值减去最小值小于等于num的子数组的数量

    最大值减去最小值小于等于num的子数组的数量 给定数组arr和整数 num,共返回有多少个数组满足下列情况: max(arr[i..j])-min(arr[i..j])<=num.其中max(a ...

  10. Python基础笔记2

    @time 2019/12/17 12:04 一.列表 1.增加数据:append.insert方法 names = ["兰陵王", "孙悟空", " ...