HDU 5963 博弈
http://acm.hdu.edu.cn/showproblem.php?pid=5963
题目大意:中文题
思路:看ICPC camp好了,简单易懂:https://async.icpc-camp.org/d/628-2016 上面的C题
//看看会不会爆int!数组会不会少了一维!
//取物问题一定要小心先手胜利的条件
#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker,"/STACK:102400000,102400000")
#define LL long long
#define ALL(a) a.begin(), a.end()
#define pb push_back
#define mk make_pair
#define fi first
#define se second
#define haha printf("haha\n")
const int maxn = + ;
struct Node{
int to, val;
};
vector<Node> G[maxn];
int n, m;
int ans[maxn]; int main(){
int t; cin >> t;
while (t--){
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++) G[i].clear();
for (int i = ; i < n; i++){
int u, v, val;
scanf("%d%d%d", &u, &v, &val);
G[u].pb(Node{v, val}); G[v].pb(Node{u, val});
}
memset(ans, , sizeof(ans));
for (int i = ; i <= n; i++){
for (int j = ; j < G[i].size(); j++){
ans[i] += G[i][j].val;
}
}
for (int i = ; i <= m; i++){
int ty; scanf("%d", &ty);
if (ty == ){
int root; scanf("%d", &root);
if (ans[root] % ) printf("Girls win!\n");
else printf("Boys win!\n");
}
else if (ty == ){
int u, v, val;
scanf("%d%d%d", &u, &v, &val);
for (int j = ; j < G[u].size(); j++){
if (G[u][j].to == v){
if (val == G[u][j].val) break;
else {
G[u][j].val = val;
if (val == ) ans[u]++, ans[v]++;
else ans[u]--, ans[v]--;
}
}
}
for (int j = ; j < G[v].size(); j++){
if (G[v][j].to == u){
G[v][j].val = val;
break;
}
}
}
}
}
return ;
}
HDU 5963 博弈的更多相关文章
- S-Nim HDU 1536 博弈 sg函数
S-Nim HDU 1536 博弈 sg函数 题意 首先输入K,表示一个集合的大小,之后输入集合,表示对于这对石子只能去这个集合中的元素的个数,之后输入 一个m表示接下来对于这个集合要进行m次询问,之 ...
- HDU 5963 朋友 (找规律,思维)
HDU 5963 朋友 题目大意 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点 ...
- HDU 5963 朋友(找规律博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=5963 题意: 思路: 我们可以先只考虑单链,自己试几种案例就可以发现规律,只有与根相连的边为1时,只需要奇数次操 ...
- HDU 5963(游戏 博弈+规律)
题意是: 一群男生和一群女生玩游戏:给出一棵 n 个节点的树,这棵树的每条边有一个权值 0 或 1. 在一局游戏开始时,确定一个节点作为根.从女生开始,双方轮流进行操作. 当一方操作时,要先选择一个不 ...
- HDU 5963 朋友(树+博弈)
#include<vector> #include<cstdio> #include<cstring> #include<algorithm> #def ...
- 【博弈】HDU - 5963 朋友
题目 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双 ...
- 最简单的博弈论——HDU - 5963 朋友 (博弈)
OK,好的先看一下题意: B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根. ...
- hdu 5963:朋友
刚看到这题时感觉是树上博弈,然后我开始用一维的数据找规律.发现在一维的树上,如果把各边的值合在一起当成一个二进制数,那么,ans只与奇偶性有关,于是,我提出了一个比较大胆的假设:若连接在root上的所 ...
- HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descr ...
随机推荐
- Redis的windows安装
第一步:下载Windows下的Redis链接:http://web.kuaipan.cn/n/drive/files/179275650081763322 第二不:打开cmd窗口命令:定位的Redis ...
- Android设置对话框去除黑边
在res/values/styles.xml文件中添加如下内容 <style name="dialog" parent="@android:style/Theme. ...
- JPA EntityManagerFactory Vs Hibernate’s SessionFactory
JPA使用EntityManagerFactory开闭session,而Hibernate使用SessionFactory开闭session.两者区别: 1. EntityManagerFactory ...
- ManyToMany OrderBy
有A.B表和A_B中间表,A_B中间表只有A.B表的id,想让A中的bs以date列排序: @Entity @Table(name="A") public class A impl ...
- 【Python】关于Python有意思的用法
开一篇文章,记录关于Python有意思的用法,不断更新 1.Python树的遍历 def sum(t): tmp=0 for k in t: if not isinstance(k,list): tm ...
- Arch下载官方镜像列表Official mirrors
Official mirrors The official Arch Linux mirror list is available from the pacman-mirrorlist package ...
- 此 ObjectContext 实例已释放,不可再用于需要连接的操作
EF 查询包含导航属性的Model,经常会遇到 此 ObjectContext 实例已释放,不可再用于需要连接的操作 这种错误,解决方法如下: db.T_DailyRecord.Include(&qu ...
- Pots(BFS)
Pots Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total Submiss ...
- ***C - I love sneakers!(动态规划,分组背包)
C - I love sneakers! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- 全排列dfs算法
如下 #include <iostream> using namespace std; #define MAX 10 #define _CRT_SECURE_NO_WARNINGS int ...