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. 因 ...
随机推荐
- JS——tab函数封装
1.为li标签添加index属性,这个属性正好就是span标签数组的index值 2.函数封装适合页面有多个tab切换,需要注意的在获取的li标签和span标签对象时,必须将对应div对象作为参数传入 ...
- [Windows Server 2008] Serv-U安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Serv- ...
- [Windows Server 2008] Ecshop安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:ECSHO ...
- 拍拍贷投资工具|拍拍贷投标工具|PPD投标工具|PPD投资工具介绍
我们先来分析一下现在市场上在PPD投资的途径: 其他解决方案 1.在网站或者手机客户端手动投标 这种方法对于非常小额的资金是可以的,稍微多一点就会发现不可行,目前PPD手动刷新出来的标几乎都是你刚刷新 ...
- 170925_2 Python socket 创建UDP的服务器端和客户端
[python版本]3.6 UDP服务器端: from socket import * from time import ctime host = '' port = 21567 buf_size = ...
- Escaping Closures 两点:本质是生命周期标示符
1.block需要(拷贝)保存: 2.block引用的环境变量需要处理. 相当于oc中的copy block. Escaping Closures A closure is said to escap ...
- mybatis批量操作(foreach)
foreach可以在SQL语句中通过拼接的方式进行集合迭代.foreach元素的属性主要有collection,item,index,separator,open,close. item属性:表示循环 ...
- c# 图片资料
- 数据结构与算法(4) -- list、queue以及stack
今天主要给大家介绍几种数据结构,这几种数据结构在实现原理上较为类似,我习惯称之为类list的容器.具体有list.stack以及queue. list的节点Node 首先介绍下node,也就是组成li ...
- flask之配置文件的加载和动态url的使用
七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...