803E
dp
dp[i][j]表示到了i赢和输的差为j
如果这位是?向dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]转移,如果是W向dp[i-1][j-1]转移,如果是L向dp[i-1][j+1]转移,如果是D向dp[i-1][j]转移
#include<bits/stdc++.h>
using namespace std;
const int N = ;
int n, k;
char s[N], ans[N][N * ];
int dp[N][N * ], pre[N][N * ];
int main()
{
scanf("%d%d", &n, &k);
scanf("%s", s + );
dp[][] = ;
for(int i = ; i <= n; ++i)
for(int j = -k + ; j <= k + ; ++j)
{
ans[i][j] = s[i];
if(s[i] == '?')
{
for(int l = -; l <= ; ++l) if(abs(j + l - ) < k && dp[i - ][j + l])
{
dp[i][j] = dp[i - ][j + l];
if(l == -) ans[i][j] = 'W';
else if(l == ) ans[i][j] = 'D';
else if(l == ) ans[i][j] = 'L';
pre[i][j] = j + l;
}
}
else if(s[i] == 'W')
{
if(abs(j - ) < k && dp[i - ][j - ])
{
dp[i][j] = ;
pre[i][j] = j - ;
}
}
else if(s[i] == 'L')
{
if(abs(j - ) < k && dp[i - ][j + ])
{
dp[i][j] = ;
pre[i][j] = j + ;
}
}
else if(s[i] == 'D')
{
if(abs(j - ) < k && dp[i - ][j])
{
pre[i][j] = j;
dp[i][j] = ;
}
}
}
if(!dp[n][k + ] && !dp[n][-k + ])
{
puts("NO");
return ;
}
vector<char> v;
int now = dp[n][k + ] ? k + : -k + ;
for(int i = now, j = n; i && j; i = pre[j][i], --j)
v.push_back(ans[j][i]);
reverse(v.begin(), v.end());
for(int i = ; i < v.size(); ++i) printf("%c", v[i]);
return ;
}
803E的更多相关文章
- AC日记——Roma and Poker codeforces 803e
803E - Roma and Poker 思路: 赢或输或者平的序列: 赢和平的差的绝对值不得超过k: 结束时差的绝对值必须为k: 当“?”时可以自己决定为什么状态: 输出最终序列或者NO: dp( ...
- Codeforces 803E - Roma and Poker
http://codeforces.com/problemset/problem/803/E E. Roma and Poker time limit per test 2 se ...
- 【codeforces 803E】Roma and Poker
[题目链接]:http://codeforces.com/contest/803/problem/E [题意] 给你一个不完整的胜负平序列(不完整是指中间有些地方为问号,让你自己选择胜负平) 让你复原 ...
- [反汇编练习] 160个CrackMe之018
[反汇编练习] 160个CrackMe之018. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...
- 电脑一直报PCIE BUS错误的原因
报错 新装Linux 系统后,每隔数分钟则报以下错误: AER:Corrected error received: 0000:00:1c:4 pcie bus error: severity=Corr ...
- yaffs2在am335x上实施
一.yaffs2文件烧写(通过网口) uboot下输入如下命令: setenv ipaddr 192.168.2.110;setenv serverip 192.168.2.222;saveenv n ...
- 菜鸟 学注册机编写之 “MD5”
测试环境 系统: xp sp3 调试器 :od 1.10 sc_office_2003_pro 高手不要见笑,仅供小菜玩乐,有不对或不足的地方还请多多指教,不胜感激! 一:定位关键CALL 1. 因 ...
随机推荐
- CSS——background
背景经常用到以下属性: background-color: aliceblue; background-image: url('2017102601.png'); background-positio ...
- JAVA中EXTENDS 与 IMPLEMENT 区别
简单说: 1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements, ...
- mybatis 项目配置
第一:environments MyBatis 支持多个环境,可以任意配置: 第二:transactionManager MyBatis 支持两种类型的事务管理器:JDBC 和 MANAGED(托管) ...
- 怎么选择最适合自己的Python培训机构?
Python培训已经成为入门Python的一个重要途径,它的优势在于学习知识的系统性.快速性和实用性.Python培训毕业的学员大多数拥有较强的实战动手能力,能够较快上手,更符合企业需求. 不过,大部 ...
- CentOS安装Docker-ce并配置国内镜像
前提条件 1.系统.内核 CentOS7 要求64位系统.内核版本3.10以上 CentOS6 要求版本在6.5以上,系统64位.内核版本2.6.32-431以上 查看内核版本号 uname -r # ...
- 非常简单的Python HTTP服务
如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助你.使用Python可以完成一个简单的内建 HT ...
- RESTful API - 介绍
目录 RESTful API 介绍 RESTful介绍 RESTful API设计指南 API与用户的通信协议 域名 版本(Versioning) 路径(Endpoint) 浏览器请求方式(metho ...
- springcloud(五):Eureka提供数据的客户端连接Docker的mysql
一.提供数据的客户端需要连接数据了,因此需要我们使用mybatis了,等下使用idea生成mybaits和web的依赖 二.提供数据的客户端项目 1.创建项目 2.选择idea自动给我们生成的依赖 3 ...
- Tensorflow读取csv文件(转)
常用的直接读取方法实例:#加载包 import tensorflow as tf import os #设置工作目录 os.chdir("你自己的目录") #查看目录 print( ...
- (问题待解决)sql查询不显示前置‘0’的问题
SELECT * , ,),() ) ' end)) from CourseBooksNotes ),)),)+'秒'; ),)),)),)+'秒'