无语,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. Cloud开发动态列的简单账表

    业务场景:客户需要根据过滤条件的不同显示不同的列.如下方式可以实现动态的列名. using System;using System.Collections.Generic;using System.L ...

  2. 深入浅出Mybatis系列五-TypeHandler简介及配置(mybatis源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(四)---配置详解之typeAliase ...

  3. C++->以读或写方式打开一个文件

    以读或写方式打开一个文件 #include<iostream.h>   //.h以C|非C标准引用库文件 #include<fstream.h> #include<std ...

  4. jQuery---弹幕效果

    弹幕效果 <!doctype html> <html> <head> <meta charset="utf-8"> <titl ...

  5. ECMAScript基本语法——⑤运算符 逻辑运算符

    &&与,会短路:左边为false右边就不参与运算||或,会短路:左边为true右边就不参与运算!非, 注意:在JavaScript中,如果运算数不是运算符要求的类型,那么JavaScr ...

  6. 函数节流-歪说js

    歪谈js 起因: 夜深人静,月朗星稀.'window.onresize 事件' 与 '浏览器'在大战300回合,console.log('1') 1s 十次,然后就结束了,一个悲伤的故事. 事实证明太 ...

  7. jeecgboot数据字典使用

    jeecgboot数据字典使用 input页面下拉框使用 效果展示 实现 定义数据字典 引用并调用JDictSelectTag组件 import JDictSelectTag from '@/comp ...

  8. BK: Data mining: concepts and techniques (1)

    Chapter 1 data mining is knowledge discovery from data; The knowledge discovery process is an iterat ...

  9. I+Me=完整的自我

    这是这个系列的第二篇文章,如同第一篇一样,这篇文章会在24小时后删除. 之所以如此极端,因为我自认为这篇文章很有价值,不以这种方式,大家即使看了,也只会一带而过,不会真的汲取到营养. 这篇文章涉及的关 ...

  10. AntDesign(React)学习-8 Menu使用 切换框架页内容页面

    本节实现一个点击左侧menu在右侧content切换页面效果,原始代码请从UMI学习-6开始看 1.在pages下添加两个组件,User,UserRole import React from 'rea ...