CodeForces 490E Restoring Increasing Sequence
来源:互联网 发布:php微信答题 源码 编辑:程序博客网 时间:2024/05/16 08:07
点击打开链接
题意:
给以一个升序的序列,但是里面有的数有些位是问号,
问你合不合法,若合法,给出最小的数列。
题解:
本来写两个for,一直wa到 test 6.。。。。然后举不出反例。
后来改成用dfs从前往后递推。就ac了。
从前往后,找到有问号的数,先让它等于上一位,向后遍历,不行+1;
之后所有的数全部变成0,或者1。
所以?-> a[i-1][j] -9 or 1 or 0;
#include<bits/stdc++.h>#define ll long long#define x first#define y secondusing namespace std;const int inf=0xffffff;const int mod=997;const int maxn=1e5+100;char a[maxn][10];bool dfs(char *a,char *b,int pos,int len){ if(pos>=len) return false; if(a[pos]=='?'){ a[pos]=b[pos]; if(dfs(a,b,pos+1,len)) return true; if(a[pos]!='9'){ a[pos]++; return true; } a[pos]='?'; return false; }else{ if(a[pos]==b[pos]) dfs(a,b,pos+1,len); else return a[pos]>b[pos]; }}int main(){ int n; scanf("%d",&n); a[0][0]='0'; a[0][1]='\0'; int lenb=1,lena,f=1; for(int i=1;i<=n;++i) scanf("%s",a[i]); for(int i=1;i<=n;++i){ lena=strlen(a[i]); if(lena<lenb){ f=0;break; }else if(lena==lenb){ if(!dfs(a[i],a[i-1],0,lena)){ f=0;break; } } for(int j=0;j<lena;++j){ if(a[i][j]=='?'){ if(j) a[i][j]='0'; else a[i][j]='1'; } }lenb=lena; } if(f){ puts("YES"); for(int i=1;i<=n;++i) puts(a[i]); }else puts("NO"); return 0;}
阅读全文
0 0
- CodeForces 490E Restoring Increasing Sequence
- CodeForces 490E Restoring Increasing Sequence
- Codeforces 490E Restoring Increasing Sequence(贪心)
- Codeforces 490E. Restoring Increasing Sequence 二分
- CodeForces 490E Restoring Increasing Sequence(贪心)
- CodeForces 490E Restoring Increasing Sequence
- codeforces 490E Restoring Increasing Sequence(贪心)
- Codeforces 490E Restoring Increasing Sequence【二分+模拟】细节题
- Codeforces Round #279 (Div. 2) E. Restoring Increasing Sequence
- Codeforces Round #279 (Div. 2)E. Restoring Increasing Sequence
- Codeforces Round #279 (Div. 2) E. Restoring Increasing Sequence
- Codeforces Round #279 (Div. 2) E. Restoring Increasing Sequence 二分
- CodeForces - 11A Increasing Sequence
- codeforces 11A - Increasing Sequence
- CodeForces 11A - Increasing Sequence
- Codeforces Beta Round #11 A. Increasing Sequence
- Increasing Sequence
- Codeforces Beta Round #11 A. Increasing Sequence 贪心
- commons pool2
- FLV文件格式解析
- HDU
- 日志管理器(封装)ScheduledThreadPoolExecutor
- js空对象判断
- CodeForces 490E Restoring Increasing Sequence
- Fragment获取Context兼容问题
- Ubuntu (Linux) 安装字体的几种方法
- 织梦Dedecms教程:针对织梦安全问题的解决办法
- GreenDao使用说明(三)多表的使用
- JDK安装与环境变量配置
- 在devicetree节点中通过加status来方便的使能或者disable driver
- Qcom 8976 单独烧录boot.img后wifi打不开
- openfalcon