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. 升级添加到现有iOS Xcode项目的Flutter

    如果你在2019年8月之前将Flutter添加到现有iOS项目,本文值得你一看. 在2019年7月30日,合并合并请求flutter / flutter#36793之前Flutter 1.8.4-pr ...

  2. cogs 247. 售票系统 线段树

    247. 售票系统 ★★☆   输入文件:railway.in   输出文件:railway.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 某次列车途经C个城市,城市 ...

  3. 【LC_Lesson7】---将两个有序链表合成新的一个有序链表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  4. wannafly camp day1

    题目描述: 恬恬的生日临近了.宇扬给她准备了一个大 蛋糕. 正如往常一样,宇扬在蛋糕上插了nnn支蜡烛,并把蛋糕分为mmm个区域.因为某种原因,他必须把第iii根蜡烛插在第aia\_iai​个区域或第 ...

  5. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第二节:以事件驱动状态、数据处理

    续上一节内容,对Web爬虫进行进一步封装,通过委托将爬虫自己的状态变化以及数据变化暴露给上层业务处理或应用程序. 为了方便以后的扩展,我先定义一个蚂蚁抽象类(Ant),并让WorkerAnt(工蚁)继 ...

  6. cocoa pods最新安装说明和使用方法

    最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources - ...

  7. ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'问题的解决

    .与limit相关的sql语句作为临时表 select * from 临时表 limit ) as B 缺点:只能查临时表的数据 .可以查原表的数据 select * from test where ...

  8. MyBatis3——输出参数ResultType、动语态sql

    输出参数ResultType 1.输出参数为简单类型(8个基本+String) 2.输出参数为对象类型 3.输出参数为实体对象类型的集合:虽然输出类型为集合,但是resultType依然写集合的元素类 ...

  9. 创建认证提供器 安全性与收尾工作 精通ASP-NET-MVC-5-弗瑞曼

  10. Java 单向队列及环形队列

    队列的特点 1.可以使用数组和链表两种方式来实现. 2.遵循先入先出(FIFO)的规则,即先进入的数据先出. 3.属于有序列表. 图解实现过程: ​ 1.定义一个固定长度的数组,长度为maxSize. ...