UESTC 1654 肆虐的病毒 博弈DP
来源:互联网 发布:淘宝成人杂志 编辑:程序博客网 时间:2024/04/29 13:28
题目链接:http://acm.uestc.edu.cn/#/problem/show/1654
PS:这道题实际上是CF上的这道题http://codeforces.com/contest/786/problem/A
解法:博弈DP。要知道一些博弈DP的转移点。
对于必胜态,后继必然有一个必败态
对于必败态,后继必然全部是必胜态
#include <bits/stdc++.h>using namespace std;const int maxn = 7e3+7;int dp[2][maxn];//dp[i][j]代表第i个人在第j个位置的状态//必胜态1//必败态0//平局就是没被访问到的点//对于必胜态,后继必然有一个必败态//对于必败态,后继必然全部是必胜态int deg[2][maxn];int n;vector <int> g[2];int dfs(int k, int i, int v){ int &ret = dp[k][i]; if(~ret) return ret; ret = v; if(v == 0){ for(int x : g[k^1]){ int j = (i + n - x) % n; if(j == 0) continue; dfs(k^1, j, 1); } } else{ for(int x : g[k^1]){ int j = (i + n - x) % n; if(j == 0) continue; if(--deg[k^1][j] == 0) dfs(k^1, j, 0); } } return ret;}int main(){ while(scanf("%d", &n) != EOF) { for(int k = 0; k < 2; k++){ int x; cin >> x; g[k].clear(); g[k].reserve(x); while(x--){ int y; cin >> y; g[k].push_back(y); } for(int i = 1; i < n; i++) deg[k][i] = g[k].size(); } memset(dp, -1, sizeof(dp)); dfs(0, 0, 0); dfs(1, 0, 0); string s[3] = {"Loop", "Lose", "Win"}; for(int k = 0; k < 2; k++){ for(int i = 1; i < n; i++){ if(dp[k][i] == 0) printf("Lose "); else if(dp[k][i] == 1) printf("Win "); else printf("Loop "); } printf("\n"); } } return 0;}
阅读全文
0 0
- UESTC 1654 肆虐的病毒 博弈DP
- 郁闷,在病毒肆虐的日子!
- 在病毒肆虐的办公环境中电子文档管理的救星
- 2016 UESTC Training for Math Problem B-三角形棋盘上的博弈游戏(打表+DP)
- 揭秘熊猫烧香病毒肆虐内幕(组图)
- BZOJ 2958: 序列染色 && BZOJ 3193: [JLOI2013]地形生成 —— 肆虐的DP
- 近来“ARP”病毒新变种肆虐 三点措施应对
- 互联网十年7大灾难事件:病毒肆虐光缆中断
- Bad Rabbit病毒肆虐,设备共享备受考验
- 蠕虫病毒疯狂肆虐 数据中心当如何防范?
- UESTC 757 棋盘 博弈、策略
- uestc 1307 数位DP
- UESTC windy数位dp
- [DP!]UESTC 890
- UESTC OJ1218(DP)
- UESTC 879 (斜率DP)
- UESTC 250 数位DP
- UESTC 84 DP
- 数据结构 最小生成树 Kruskal算法
- python环境变量设置
- Codeforces Gym 101190 (NEERC 2016) H. Hard Refactoring (模拟 + 树状数组)
- 乱序字符串
- 数据结构 最小生成树 Prim算法
- UESTC 1654 肆虐的病毒 博弈DP
- POJ 1000 水题
- eclipse中将项目打成jar包的办法
- nii图像的读取处理保存
- Fragment在Activity上面
- 项目部署三种方法
- OpenCV颜色空间——Lab颜色空间
- 文章标题
- Spring事务的配置