HDU 5963 朋友(树+博弈)
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 40010
using namespace std;
int indeg[maxn];
vector<int> g[maxn];
int main()
{
int T,n,m;
int u,v,w;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
memset(g,,sizeof(g));
memset(indeg,,sizeof(indeg));
for(int i=;i<=n-;i++){
scanf("%d%d%d",&u,&v,&w);
if(w==){
indeg[u]++;
indeg[v]++;
g[u].push_back(v);
g[v].push_back(u);
}
}
while(m--){
int op;
scanf("%d",&op);
if(op==){
int t;
scanf("%d",&t);
if(indeg[t]%) printf("Girls win!\n");
else printf("Boys win!\n");
}
else{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
vector<int> ::iterator p1=find(g[x].begin(),g[x].end(),y);
vector<int> ::iterator p2=find(g[y].begin(),g[y].end(),x);
if(p1!=g[x].end()&&p2!=g[y].end()&&z==){
indeg[x]--;//注意:要控制迭代器不能超过整个容器
indeg[y]--;//erase()函数返回值是一个迭代器,指向删除元素下一个元素
g[x].erase(p1);
g[y].erase(p2);
}
if(p1==g[x].end()&&p2==g[y].end()&&z==){
indeg[x]++;//如果g[x]中没找到y,g[y]没找到x
indeg[y]++;
g[x].push_back(y);
g[y].push_back(x);
}
}
}
}
}
HDU 5963 朋友(树+博弈)的更多相关文章
- HDU 5963 朋友 (找规律,思维)
HDU 5963 朋友 题目大意 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点 ...
- HDU 5963 朋友(找规律博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=5963 题意: 思路: 我们可以先只考虑单链,自己试几种案例就可以发现规律,只有与根相连的边为1时,只需要奇数次操 ...
- 【博弈】HDU - 5963 朋友
题目 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双 ...
- 最简单的博弈论——HDU - 5963 朋友 (博弈)
OK,好的先看一下题意: B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根. ...
- HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descr ...
- hdu 5963 朋友(2016ccpc 合肥站 C题)
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
- hdu 5963:朋友
刚看到这题时感觉是树上博弈,然后我开始用一维的数据找规律.发现在一维的树上,如果把各边的值合在一起当成一个二进制数,那么,ans只与奇偶性有关,于是,我提出了一个比较大胆的假设:若连接在root上的所 ...
- 【不知道怎么分类】HDU - 5963 朋友
题目内容 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始 ...
- HDU 5963 朋友 题解
题目 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双 ...
随机推荐
- java守护线程。
java的守护线程:具体定义我也不太清楚,百度和谷歌了看的也不是很明白,但是啊,下边有给出一个例子自己领悟吧. 一.计时器的Timer声明时是否声明为守护线程对计时器的影响. /** * */ pac ...
- Android studio 添加admob googgle play services
Android studio 添加admob googgle play services MainActivity import com.google.android.gms.ads.AdReques ...
- hdu 1140:War on Weather(计算几何,水题)
War on Weather Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- hdu 3008:Warcraft(动态规划 背包)
Warcraft Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- hdu 4291(矩阵+暴力求循环节)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4291 思路:首先保留求出循环节,然后就是矩阵求幂了. #include<iostream> ...
- java 反序列化漏洞检测及修复
Jboss.Websphere和weblogic的反序列化漏洞已经出来一段时间了,还是有很多服务器没有解决这个漏洞: 反序列化漏洞原理参考:JAVA反序列化漏洞完整过程分析与调试 这里参考了网上的 J ...
- python3----练习题(图片转字符画)
import argparse from PIL import Image def parse_param(): parser = argparse.ArgumentParser() # 命令行输入参 ...
- 我的Android进阶之旅------>MIME类型大全
今天在实现一个安装apk的代码中看到一段代码为:application/vnd.android.package-archive.不知其意.所以百度了一下,了解到这是一种MIME的类型,代表apk类型. ...
- android 清除缓存功能
本应用数据清除管理器 DataCleanManager.java 是从网上摘的 忘了 名字了 对不住了 载入一个webview 产生缓存 众所周知的webview是产生缓存的主要原因之中的一 ...
- virtualbox虚拟机Linux系统与本地windows系统共享文件方法
转自:http://jingyan.baidu.com/article/2fb0ba40541a5900f2ec5f07.html