Codeforces 387C George and Number
来源:互联网 发布:淘宝cf代练 编辑:程序博客网 时间:2024/06/06 00:59
题意:
给你一串数字,问你如何划分这些数字,使其按严格递减顺序,划分完后的数字个数最多是多少个。
思路:
由于不能有前导0,所以我们先把所有的数字单独划分出来。然后从头开始,枚举每一个数,并维护Max,若该数小于Max,则该数可以独立,ans++,并合并到Max中(由于题目所给的操作是允许不同数合并后成为新数去比较的),否则该数要和之前所有的数都合并,ans=1。注意:由于所给数字太大,得用字符串存放,这里得自己写一个字符串的比较函数cmp。
#include<iostream>#include<cstring>#include<string>using namespace std;const int MAX=100005;string s,a[MAX];bool cmp(string a,string b){int lena=a.size();int lenb=b.size();if(lena<lenb) return false;else if(lena>lenb) return true;else{for(int i=0;i<lena;i++){if(a[i]>b[i]) return true;if(a[i]<b[i]) return false;}}return true;}int main(){cin>>s;int len=s.size(),cnt=0;for(int i=0;i<len;i++){a[cnt]+=s[i];while(s[i+1]=='0'){a[cnt]+=s[i+1];i++;}cnt++;}/*for(int i=0;i<cnt;i++){cout<<a[i]<<endl;}*/string Max=a[0];int ans=1;for(int i=1;i<cnt;i++){//cout<<i<<" "<<Max<<endl;if(cmp(Max,a[i])) ans++;else ans=1;Max+=a[i];}cout<<ans<<endl;return 0;}
0 0
- CodeForces 387C George and Number
- CodeForces 387 C. George and Number[贪心]
- Codeforces 387C George and Number 贪心
- Codeforces 387C George and Number 暴力
- CodeForces 387C George and Number
- Codeforces 387C George and Number
- CodeForces 387C George and Number
- George and Number CodeForces - 387C
- Codeforces 387C George and Number【思维】
- Codeforces 387C George and Number(贪心)
- codeforces 387C George and Number(贪心)
- Coedforces 387 C. George and Number
- Codeforces Round #227 (Div. 2)C. George and Number
- Codeforces Round #227 (Div. 2) / 387C George and Number (贪心)
- 【CODEFORCES】 C. George and Job
- CodeForces387C C - George and Number 贪心+递归
- Codeforces 467C. George and Job
- Codeforces 467C George and Job
- HDU 5326 Work(并查集变种)
- Android中的Application类
- python类与面向对象编程
- Discuz!使用技巧十条
- Lua教程(二):C++和Lua相互传递数据示例
- Codeforces 387C George and Number
- PHP 资源备忘
- Spring IOC 加载多个配置文件
- 第22天:规划采购管理和规划干系人管理
- Lua教程(四):在Lua中调用C语言、C++的函数
- iOS本地推送实现备忘录闹铃提醒
- 关于Hadoop分布式计算:多个Map分布在不同节点上执行
- JavaScript中trim 方法实现
- Elasticsearch2.3入门