http://codeforces.com/problemset/problem/490/E

dfs,过程要注意细节,特别是当前位置取了与上个数当前位置相同是,若后面不符合条件,则当前位置要重置'?'。

  1. #include<cstdio>
  2. #include<string>
  3. #include<iostream>
  4. using namespace std;
  5. string a[];
  6.  
  7. bool dfs(int i,int j, bool flag)
  8. {
  9.  
  10. if(j == a[i].size()) return flag;
  11. if(flag)
  12. {
  13. if(a[i][j] == '?') a[i][j] = '';
  14. return dfs(i,j+,flag);
  15. }
  16. if(a[i][j] == '?')
  17. {
  18. a[i][j] = a[i-][j];
  19. if(dfs(i,j+,flag)) return ;
  20. else if(a[i][j] == '')
  21. {
  22. a[i][j] = '?';
  23. return ;
  24. }
  25. else
  26. {
  27. a[i][j]++;
  28. return dfs(i,j+,);
  29. }
  30. }
  31. if(a[i][j] > a[i-][j]) return dfs(i,j+,);
  32. if(a[i][j] == a[i-][j]) return dfs(i,j+,flag);
  33. else return ;
  34. }
  35. int main()
  36. {
  37. a[] = "";
  38. int n;
  39. cin >> n;
  40. for(int i = ;i <= n;i++) cin >> a[i];
  41. for(int i = ;i <= n;i++)
  42. {
  43. if(a[i].size() > a[i-].size())
  44. {
  45. for(int k = ;k < a[i].size();k++)
  46. {
  47. if(a[i][k] == '?')
  48. {
  49. if(k == ) a[i][k] = '';
  50. else a[i][k] = '';
  51. }
  52. }
  53. }
  54. else if(a[i].size() < a[i-].size())
  55. {
  56. cout << "NO" << endl;
  57. return ;
  58. }
  59. else if(!dfs(i,,))
  60. {
  61. cout << "NO" <<endl;
  62. return ;
  63. }
  64. }
  65. cout << "YES" << endl;
  66. for(int i = ;i <= n;i++) cout << a[i] << endl;
  67. return ;
  68. }

Codeforces_490_E的更多相关文章

随机推荐

  1. docker+mysql 更改配置后重启不了的解决方案

    docker+mysql 更改配置后重启不了的解决方案 前提:在最近的项目中,决定将项目改造成数据库读写分离的架构,于是擅自更改生产环境的数据库的配置文件my.cnf,由于我是用docker进行部署的 ...

  2. Serverless 设计理念:从头创建品牌标识

    本文首发于 Serverless 中文网,译者:Aceyclee.如需转载,请保留原作者和出处. 如何在开源技术社区中做设计?本文来自 Serverless 团队中首席设计的分享 -- 展现了设计过程 ...

  3. Cocos Creator | 飞刀大乱斗开发教程系列(三)

    预览效果 ​ 具体内容 ■ 这一期,主要讲解游戏过程中,通过触摸滑动,控制人物的运动方向,以及游戏过程中,人物运动区域的控制.如下图,人物通过滑动控制运动方向,即是往哪个方向滑动,人物就往哪个方向移动 ...

  4. Go中锁的那些姿势,估计你不知道

    什么是锁,为什么使用锁 用俗语来说,锁意味着一种保护,对资源的一种保护,在程序员眼中,这个资源可以是一个变量,一个代码片段,一条记录,一张数据库表等等. 就跟小孩需要保护一样,不保护的话小孩会收到伤害 ...

  5. Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

    本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...

  6. C# WPF 嵌入网页版WebGL油田三维可视化监控

    0x00 楔子 最近做的一个项目,是一个油田三维可视化监控的场景编辑和监控的系统,和三维组态有些类似,不过主要用于油田上. 效果如下图所示: 首先当然是上模型,设计人员跟进. 有了相关的模型,使用我们 ...

  7. python中类的输出或类的实例输出为何是<__main__类名 object at xxxx>这种形式?

    原因: __str__()这个特殊方法将对象转换为字符串的结果 效果图: 代码: # 定义一个Person类 class Person(object): """人类&qu ...

  8. cogs 186. [USACO Oct08] 牧场旅行 树链剖分 LCA

    186. [USACO Oct08] 牧场旅行 ★★☆   输入文件:pwalk.in   输出文件:pwalk.out   逐字节对比时间限制:1 s   内存限制:128 MB n个被自然地编号为 ...

  9. hdfs断电报错解决

    一,/home/hadoop/tmp/dfs/name/current 目录下查看文件二,1.stop hadoop所有的服务;2.重新格式化namenode即可: hadoop根目录下: hadoo ...

  10. BZOJ4559&P3270[JLoi2016]成绩比较

    题目描述 \(G\)系共有\(n\)位同学,\(M\)门必修课.这\(N\)位同学的编号为\(0\)到\(N-1\)的整数,其中\(B\)神的编号为\(0\)号.这\(M\)门必修课编号为\(0\)到 ...