[HDU5963]朋友

题目大意:

给定一棵\(n(n\le40000)\)个点的树,边权只能是\(0\)或\(1\)。一局游戏开始时,会确定一个结点作为根。AB轮流操作。当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然后找出这个点到根节点的简单路径,将路径上所有边的权值翻转。当一方无法操作时(即所有边的边权均为0),另一方就获得了胜利。

共\(m(m\le40000)\)次操作,操作分为以下两种:

  1. 询问对于当前的树,如果以\(x\)为根节点开始游戏,哪方会获得胜利。
  2. 将\(x\)和\(y\)之间的边的边权修改为\(z\)。

思路:

找规律,答案仅与与根相连的\(1\)边个数的奇偶性有关。

源代码:

#include<set>
#include<cstdio>
#include<cctype>
#include<algorithm>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
const int N=4e4+1;
bool b[N];
std::set<int> set[N];
int main() {
for(register int T=getint();T;T--) {
const int n=getint(),m=getint();
for(register int i=1;i<n;i++) {
const int u=getint(),v=getint();
if(getint()) {
set[u].insert(v);
set[v].insert(u);
b[u]^=1;
b[v]^=1;
}
}
for(register int i=0;i<m;i++) {
if(getint()) {
const int u=getint(),v=getint();
const bool w=getint();
if(!w&&set[u].count(v)) {
set[u].erase(v);
set[v].erase(u);
b[u]^=1;
b[v]^=1;
}
if(w&&!set[v].count(u)) {
set[u].insert(v);
set[v].insert(u);
b[u]^=1;
b[v]^=1;
}
} else {
puts(b[getint()]?"Girls win!":"Boys win!");
}
}
std::fill(&b[1],&b[n]+1,false);
for(register int i=1;i<=n;i++) {
set[i].clear();
}
}
return 0;
}

最新文章

  1. js模仿ios select效果
  2. PostgreSQL wiki
  3. 开发APP不搞清楚这20个问题,必然沦为一场灾难
  4. mysqldump备份与还原mysql数据的实例
  5. Eclipse的LogCat总是自动清空怎么办?
  6. 防止sql注入式攻击 SQL注入学习——三层架构
  7. MFC UpdateData(true) 失败原因
  8. nginx 请求负载 转发规则设置
  9. ASCII码、base64编码 为什么有的代码要用 base64 进行编码?
  10. C#中Linq延迟执行问题
  11. android 属性动画
  12. python并发编程之协程
  13. 了解iOS消息推送一文就够:史上最全iOS Push技术详解
  14. elk安装最佳实践
  15. react native项目的创建和运行
  16. windows中连接hive-客户端
  17. 关于serialVersionUID与序列化&quot;
  18. linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录
  19. 海思平台交叉编译curl支持SSL功能
  20. C# 汉字转拼音 方法(汉字的发音不过400多种(不算声调))

热门文章

  1. Linux内存管理--基本概念【转】
  2. python用win32pdh模块查看进程信息
  3. mysql数据库查询库中所有表所占空间大小
  4. sql 学习
  5. https协议的接口测试
  6. Spring IOC 低级容器解析
  7. cf932d 树上倍增
  8. 浅谈Phoenix在HBase中的应用
  9. .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行
  10. B 找规律