ABC195E
其实我们发现很多博弈论的动态规划都是从后往前的,比如过河卒和本题。
这是因为从某种角度上来说这些动态规划有后效性而无前效性。
所以设计状态 \(dp_{i,j}\) 表示第 \(i\) 次操作 \(T\) 模 \(7\) 的余数为 \(j\) 的情况下能否走到 Takahashi 的胜利状态。
然后就是正常的博弈论倒序转移。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 3e5+114;
string X,S;
int n;
int dp[maxn][10];//第 i 次操作后 base-10 T % 7 = j 是否可能达成目标
signed main(){
cin>>n;
cin>>X>>S;
dp[n][0]=1;
for(int i=n-1;i>=0;i--){
for(int j=0;j<7;j++){
if(S[i]=='T'){
dp[i][j]=dp[i+1][(j*10+((int)(X[i]-'0')%7))%7]|dp[i+1][(j*10)%7];
}
else{
dp[i][j]=dp[i+1][(j*10+((int)(X[i]-'0')%7))%7]&dp[i+1][(j*10)%7];
}
}
}
cout<<(dp[0][0]==1?"Takahashi":"Aoki");
}
随机推荐
- git checkout 命令图文详解
目录 git checkout branchname (切换本地分支) 切换远程分支 放弃修改 git checkout . git checkout – filename git checkout ...
- vue2下拉框组件使用技巧
1.ant design 下拉框组件--单选 <span style="font-size: 14px;">污水厂</span> <a-select ...
- addEventListener添加事件监听
removeEventListener移除事件监听 window.addEventListener('mousedown', e => this.closeMenu(e)) window.add ...
- C#实现多线程的几种方式
前言 多线程是C#中一个重要的概念,多线程指的是在同一进程中同时运行多个线程的机制.多线程适用于需要提高系统并发性.吞吐量和响应速度的场景,可以充分利用多核处理器和系统资源,提高应用程序的性能和效率. ...
- threejs的坐标渲染和着色
点击查看代码 function createBasic() { // 目标:了解顶点坐标绘制正方形 // 1. 准备 BufferGemotry 缓冲几何图形 // 2. 准备 32 位浮点数的数组, ...
- Unity新的MeshData API学习
在新版本的Unity中提供了MeshDataArray和MeshData等多个API,使Mesh数据操作支持多线程:以更好的支持DOTS. API文档:https://docs.unity3d.com ...
- C语言:如何删除在可视化网页中未可见的内容(网页txt)
我这个代码仅仅限制于在chrome浏览器中下载china daliy的网页中实现删除可视化内容,因为每个网页的超链接或者文本主内容分布不一样,但是学会了删除一个网页类型的不可视化内容之后,修改其他网页 ...
- 移动通信网络中的 FDD/TDD 无线帧
目录 文章目录 目录 前文列表 无线帧 FDD 与 TDD 的区别 FDD 无线帧 TDD 无线帧 前文列表 <移动通信网络中的资源类型> 无线帧 LTE 支持两种类型的无线帧:FDD(F ...
- mybaits-plus实现自定义字典转换
需求:字典实现类似mybatis-plus中@EnumValue的功能,假设枚举类中应用使用code,数据库存储对应的value 思路:Mybatis支持对Executor.StatementHand ...
- RESTful风格openapi接口设计+openapi远程服务调用
我们平常开发一般只使用GET.POST方法.而对于HTTP给出的PUT.DELETE等其他方法都没使用.以RESTful风格设计接口就能全部用上这些方法. 按照RESTful理查德森成熟度模型改造接口 ...