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

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

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
string a[]; bool dfs(int i,int j, bool flag)
{ if(j == a[i].size()) return flag;
if(flag)
{
if(a[i][j] == '?') a[i][j] = '';
return dfs(i,j+,flag);
}
if(a[i][j] == '?')
{
a[i][j] = a[i-][j];
if(dfs(i,j+,flag)) return ;
else if(a[i][j] == '')
{
a[i][j] = '?';
return ;
}
else
{
a[i][j]++;
return dfs(i,j+,);
}
}
if(a[i][j] > a[i-][j]) return dfs(i,j+,);
if(a[i][j] == a[i-][j]) return dfs(i,j+,flag);
else return ;
}
int main()
{
a[] = "";
int n;
cin >> n;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= n;i++)
{
if(a[i].size() > a[i-].size())
{
for(int k = ;k < a[i].size();k++)
{
if(a[i][k] == '?')
{
if(k == ) a[i][k] = '';
else a[i][k] = '';
}
}
}
else if(a[i].size() < a[i-].size())
{
cout << "NO" << endl;
return ;
}
else if(!dfs(i,,))
{
cout << "NO" <<endl;
return ;
}
}
cout << "YES" << endl;
for(int i = ;i <= n;i++) cout << a[i] << endl;
return ;
}

Codeforces_490_E的更多相关文章

随机推荐

  1. bat无法识别命令、无法识别运算符、结果不符合预期等问题

    1.无法识别的命令等可能为中文字符编码等问题,破坏了bat文件格式,建议去掉中文,加上引号或者重新创建文件.例如:@echo off%~d0cd /d %~dp0title epoch时间转换(%cd ...

  2. HTTP请求中的GET-POST方式

    目录 一.前言部分(概念) 二.对比 GET 与 POST 二者最大的差异 GET 与 POST 请求本质上并无区别 深层了解:POST 请求产生两个数据包? 三.两种请求方式如何灵活使用? 四.常见 ...

  3. 6.python在windows下用批处理文件在运行中输入程序名直接运行的方法

    最近由于平时自由时间比较多,在看一本python入门书籍,在里面学习了一种用windows下的批处理文件在电脑运行界面中直接输入程序名称就可运行的方法,现将其详细说明如下: 1.首先编写一个教程上的程 ...

  4. LCA (Tarjan&倍增)

    LCA_Tarjan 参考博客:https://www.cnblogs.com/JVxie/p/4854719.html LCA的Tarjan写法需要结合并查集 从叶子节点往上并 int Find ( ...

  5. 【转】C#中protected用法详解

    https://www.cnblogs.com/wangyt223/archive/2012/08/08/2627801.html 在c#的可访问性级别中,public和private算是最容易理解的 ...

  6. Go Web 编程之 模板(一)

    概述 模板引擎是 Web 编程中必不可少的一个组件.模板能分离逻辑和数据,使得逻辑简洁清晰,并且模板可复用.引用第二篇文章<程序结构>一文中的图示,我们可以看到模板引擎在 Web 程序结构 ...

  7. vue不常用到的v-model修饰符

    v-model的input事件同步输入框的数据根据输入的内容实时改变.v-model.lazy则是与change事件同步,即失去焦点或是回车才更新 v-model.number 将输入的数字转换为Nu ...

  8. C# 将Word转为PDF、XPS、Epub、RTF(基于Spire.Cloud.Word.SDK)

    本文介绍通过调用Spire.Cloud.Word.SDK提供的ConvertApi接口将Word转换为PDF.XPS.Epub.RTF以及将Docx转为Doc格式等.调用接口方法及步骤参考以下步骤: ...

  9. JavaScript面向对象 实例与原型

    JavaScript 面向对象 和 C# 不太一样,js 的对象是继承自原型的如下: 首先创建一个 js 实例 new  function function f () {} 这个函数 会继承 Func ...

  10. 在 Vue 中使用 Typescript

    前言 恕我直言,用 Typescript 写 Vue 真的很难受,Vue 对 ts 的支持一般,如非万不得已还是别在 Vue 里边用吧,不过听说 Vue3 会增强对 ts 的支持,正式登场之前还是期待 ...