博弈论
来源:互联网 发布:js小数做加减 编辑:程序博客网 时间:2024/06/16 04:48
1、HDU 5963 朋友
参考:http://www.cnblogs.com/bin-gege/p/6033798.html
与 r 相连的边权值的和为奇数时 Girls win!
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int maxn = 4e4 + 10;int T, n, m, cmd, x, y, z, edge = 0;int head[maxn], Next[2 * maxn], to[2 * maxn], val[2 * maxn];void init(void);void add_edge(int u, int v, int _val);int main() {#ifdef Floyd freopen("in.txt", "r", stdin);#endif // Floyd scanf("%d", &T); while (T--) { init(); scanf("%d %d", &n, &m); for (int i = 1; i < n; ++i) { scanf("%d %d %d", &x, &y, &z); add_edge(x, y, z); add_edge(y, x, z); } while (m--) { scanf("%d", &cmd); if (cmd == 0) { scanf("%d", &x); int ans = 0; for (int i = head[x]; i != -1; i = Next[i]) { ans += val[i]; } if (ans & 1) { printf("Girls win!\n"); } else { printf("Boys win!\n"); } } else { scanf("%d %d %d", &x, &y, &z); for (int i = head[x]; i != -1; i = Next[i]) { if (to[i] == y) { val[i] = z; break; } } for (int i = head[y]; i != -1; i = Next[i]) { if (to[i] == x) { val[i] = z; break; } } } } } return 0;}void init(void) { memset(head, -1, sizeof(head)); edge = 0;}void add_edge(int u, int v, int _val) { to[edge] = v; val[edge] = _val; Next[edge] = head[u]; head[u] = edge++;}
0 0
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 【博弈论】
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- 博弈论
- Android UI控件总结
- codeforces愚人节2013 a一个谜一样的字符串
- PHP 中 Session 反序列化机制
- $.each()
- 图的广度优先搜索BFS(C++)
- 博弈论
- 11.4导包操作
- Oracle 11g AMM与ASMM切换
- Android 开发 知识点 疑难杂症
- 两种方法获取View宽高信息
- 使用IBPP在C++中操作FireBird/Interbase数据库
- Parallax Cubemap for Planar Reflection - Remember Me反射系统学习笔记及实现
- PHP 高级编程之多线程
- DSP5402重要概念