【2015ZUFE新生赛网络同步赛G】【贪心】贪心的小猫咪 不含0的字符串删除一位使得数值尽可能大
2015-12-07 12:17
423 查看
#include<stdio.h> #include<iostream> #include<string.h> #include<string> #include<ctype.h> #include<math.h> #include<set> #include<map> #include<vector> #include<queue> #include<bitset> #include<algorithm> #include<time.h> using namespace std; void fre(){freopen("c://test//input.in","r",stdin);freopen("c://test//output.out","w",stdout);} #define MS(x,y) memset(x,y,sizeof(x)) #define MC(x,y) memcpy(x,y,sizeof(x)) #define MP(x,y) make_pair(x,y) #define ls o<<1 #define rs o<<1|1 typedef long long LL; typedef unsigned long long UL; typedef unsigned int UI; template <class T1,class T2>inline void gmax(T1 &a,T2 b){if(b>a)a=b;} template <class T1,class T2>inline void gmin(T1 &a,T2 b){if(b<a)a=b;} const int N=1e6+10,M=0,Z=1e9+7,ms63=1061109567; int casenum,casei; char s ; void solve() { int n=strlen(s); if(n==1){puts("0");return;} for(int i=0;i<n-1;++i)if(s[i]>s[i+1]) { s[i]=0; printf("%s",s); printf("%s\n",s+i+1); return; } s[n-1]=0; puts(s); } int main() { while(~scanf("%s",s)) { solve(); } return 0; } /* 【trick&&吐槽】 这题有一个hack点是长度为1,然而并没有这样的数据 【题意】 给你一个不含0的数串,让你删除一个位置的数,使得这个数串的数值尽可能小。 【类型】 贪心 【分析】 从前到后,如果a[i]>a[i+1],显然肯定删除a[i] 如果a[i]<a[i+1],显然肯定删除不a[i] 如果a[i]==a[i+1],暂不操作。 这样就AC啦 【时间复杂度&&优化】 O(n) */
相关文章推荐
- 1.一些 贪心算法 的简单思维题:
- 贪心算法——字典序最小问题
- 贪心算法——区间调度问题
- Jump Game I,II 贪心
- Wildcard Matching
- 贪心法实现无向图的划分 代码
- 贪心题目循环和控制台折行
- HDOJ 1009
- 【解题报告】【USACO】酸奶工厂
- 【解题报告】【】交谊舞
- POJ 1328
- Best Cow Line
- POJ2377 Bad Cowtractors
- 贪心 hdu 1003
- 最大容器
- 满足和为定值的两个数或多个数
- Codeforces Round #300
- HUD1052 __ P2 1002 __ Tian Ji -- The Horse Racing
- 2015年国家集训队测试 BZOJ3816矩阵变幻
- poj 1328