Gym 101246DFire in the Country (dfs暴力博弈)
来源:互联网 发布:淘宝产品文案类型 编辑:程序博客网 时间:2024/06/07 00:35
题意:
给定一个无向有环图,大火从1点开始,每个时间点与它相邻的点也将会着火,现在有两个人轮流操作机器人,机器人从1点出发,每个人每次选择一个点走,谁最后被火烧了谁就输了。
题解:
预处理很重要,先bfs求出每个节点开始着火的时间,然后直接dfs暴力博弈。
代码:
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1008;//下面注释的是用的dfs预处理求的天数超时了//dfs其实因该也行就是我写的很瓜皮,不想改了/*int f[MAXN], g[MAXN][MAXN];int n, m;void dfs1(int k, int val) { for(int i = 1; i <= n; i++) { if (g[k][i]) { f[i] = min(val, f[i]); g[k][i] = g[i][k] = 0; dfs1(i, val+1); g[k][i] = g[i][k] = 1; } }}int dfs2(int k, int day) { for(int i = 1; i <= n; i++) { if (f[i] == day && g[k][i]) if (!dfs2(i, day+1)) return 1; } return 0;}int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); scanf("%d%d", &n, &m); for(int i = 0; i < m; i++) { int x, y; scanf("%d%d", &x, &y); g[x][y] = 1; g[y][x] = 1; } for(int i = 1; i <= n; i++) f[i] = MAXN; dfs1(1, 1); if (dfs2(1, 1)) puts("Vladimir"); else puts("Nikolay"); return 0;}*/int f[MAXN], g[MAXN][MAXN], nG[MAXN];int n, m;queue<int> q;void bfs() {//预处理求第i个节点着火的时间f[i] while (!q.empty()) { int k = q.front(); q.pop(); for(int i = 0; i < nG[k]; i++) if (!f[g[k][i]]) { f[g[k][i]] = f[k]+1; q.push(g[k][i]); } }}//多组要用sg,这里只有一组直接暴力int dfs2(int k, int day) { for(int i = 0; i < nG[k]; i++) { if (f[g[k][i]] == day) if (!dfs2(g[k][i], day+1)) return 1;//可以到必败点必胜 } return 0;//不可以到必败点必败}int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); scanf("%d%d", &n, &m); for(int i = 0; i < m; i++) { int x, y; scanf("%d%d", &x, &y); g[x][nG[x]++] = y; g[y][nG[y]++] = x; } q.push(1); f[1] = 1; bfs(); if (dfs2(1, 2)) puts("Vladimir"); else puts("Nikolay"); return 0;}
阅读全文
0 0
- Gym 101246DFire in the Country (dfs暴力博弈)
- sgu - 520 - Fire in the Country(bfs + dfs + 博弈)
- ZOJ 3332 Strange Country II暴力DFS
- SGU 520 Fire in the Country 博弈SG函数(或者YY一下)
- Strange Country II(暴力DFS判有向图的哈密顿通路)
- The most happiest country in the world
- Codeforces Round #447 (Div. 2) D. Ralph And His Tour in Binary Country(dfs)
- zoj 3332 Strange Country II (dfs)
- HDU 5723 Abandoned country(DFS+kruskal)
- HDU-5723-Abandoned country(kruskal+DFS)
- codeforce 723d Lakes in Berland(暴力DFS)
- Gym 100733H Designation in the Mafia(最短路)
- GYM 101086 H.Another Square in the Floor(水~)
- GYM 100694 I.Goat in the Field(水~)
- 多校第12场FZU Assign the task(暴力DFS)
- HDU 2782 The Worm Turns (暴力dfs)
- HDU 1010 Tempter of the Bone(DFS+暴力+标记)
- Codeforces Gym 100548H The Problem to Make You Happy (图上博弈DP)
- ReLu(Rectified Linear Units)激活函数
- Linux文件系统
- 组件图(Component Diagram)
- Unity3D--Update和FixedUpdate的区别与共性
- innodb自适应刷脏页
- Gym 101246DFire in the Country (dfs暴力博弈)
- Unity脚本事件执行的顺序
- Shell第一天
- 使用PHP操作mysql和mysqli与PDO的区别
- 九度oj-1064-反序数
- int x = -2147483648
- 存储过程
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)
- OpenCV学习笔记——Mat,图像的新容器