Xor 思维题
Xor 思维题
题目描述
小\(Q\)与小\(T\)正在玩一棵树。这棵树有\(n\)个节点,编号为 \(1\),\(2\) \(3...n\),由\(n-1\)条边连接,每个节点有一个权值\(w_i\)。
在这个游戏中,小 \(Q\) 需要选择一些节点。他可以选择任意个数的点(小\(Q\)一定会选择最优策略),但是一条边连接的两个节点不能同时被选。
当小\(Q\)选完后,小\(T\)将选择剩下的节点。这样这棵树上的每个点都将被小\(Q\)或者小\(T\)选择。
最后两人的分数分别为自己选择的点的权值异或和,分数大的一方获胜,当然有可能是平局。
输入格式
第一行一个整数\(T(T \leq 20)\),表示测试数据组数
接下来\(T\)组,对于每一组,第一行一个整数\(n\)
第二行有\(n\)个整数,为\(w_1,w_2...w_n\),
接下来\(n-1\)行,每行两个整数\(x\),\(y\),表示\(x\)和\(y\)
之间有一条边连接
输出格式
对于每一组,答案只有一行,如果小\(Q\)获胜输出\(Q\),小\(T\)获胜输出\(T\),如果平局输出\(D\)。
样例
样例输入
2
3
2 2 2
1 2
1 3
4
7 1 4 2
1 2
1 3
2 4
样例输出
Q
D
样例解释
在第一组中,小\(Q\)选择任意一个节点,分数为\(2\),小\(T\)选择剩下两个节点,分数为\(0\),小\(Q\)获胜
在第二组中,小\(Q\)最好只能和小\(T\)平局,所以输出\(D\)
数据范围与提示
对于$30% \(的数据,\)n \leq 20$
对于\(100\%\)的数据,\(n \leq 100000\),\(w_i \leq 10^9\)。
分析
一道不错的思维题
首先我们考虑平局的情况
如果整棵树上所有节点的异或和恰好为\(0\)的话
那么无论先手选走哪一些点,后手选走的点一定与先手选走的点相同,这样才能保证异或和为\(0\)
如果整棵树上所有节点的异或和不为\(0\),那么我们在二进制位中会找到一个最高位的\(1\)
先手只要把这个\(1\)选走,那么必定可以获胜
代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int a[maxn],n;
int main(){
int t;
scanf("%d",&t);
while(t--){
int tot=0;
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
tot^=a[i];
}
for(int i=1;i<n;i++){
int aa,bb;
scanf("%d%d",&aa,&bb);
}
if(tot==0) printf("D\n");
else printf("Q\n");
}
return 0;
}
Xor 思维题的更多相关文章
- [UVA12235] Help Bubu 思维题+状态定义+Dp
Online Judge:UVA12235 Label:思维题,状态定义,状压Dp 题面: 题目描述 有一个书架,上面放了n本书,从左往右的第i本书的高度为h[i].定义书架的混乱度为连续等高段的个数 ...
- zoj 3778 Talented Chef(思维题)
题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...
- cf A. Inna and Pink Pony(思维题)
题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- C. Nice Garland Codeforces Round #535 (Div. 3) 思维题
C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
随机推荐
- tensorflow对鸢尾花进行分类——人工智能入门篇
tensorflow之对鸢尾花进行分类 任务目标 对鸢尾花数据集分析 建立鸢尾花的模型 利用模型预测鸢尾花的类别 环境搭建 pycharm编辑器搭建python3.* 第三方库 tensorflow1 ...
- 013.Nginx动静分离
一 动静分离概述 1.1 动静分离介绍 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片.js.css等文件,可以在反向代理服务器中进行缓存,这样浏览器 ...
- ztree : checkbox 选中/不选中时动态添加/删除DOM元素
先上代码. var IDMark_Switch = "_switch", IDMark_Icon = "_ico", IDMark_Span = "_ ...
- vs code的使用(一) Format On Paste/Format On Save/ Format On Type
很多经典的问题可以搜索出来,但是一些很小的问题网上却没有答案 (这是最令人发狂的,这么简单,网上居然连个相关的信息都没有给出) (就比如我想保存后自动格式化,但网上的大部分都是如何取消保存后自动格式化 ...
- AI面试之SVM推导
SVM现在主流的有两个方法.一个是传统的推导,计算支持向量求解的方法,一个是近几年兴起的梯度下降的方法. 梯度下降方法的核心是使用了hinge loss作为损失函数,所以最近也有人提出的深度SVM其实 ...
- EF Code 如何输出sql语句
首先写拷贝下面类 public class EFLoggerProvider : ILoggerProvider { public ILogger CreateLogger(string catego ...
- DPDK之什么是imissed、ierrors、rx_nombuf
DPDK之什么是imissed.ierrors.rx_nombuf 在采用DPDK进行网络抓包时常常会通过rte_eth_stats_get函数获取当前网卡的丢包状态,首先看一下该函数的声明: // ...
- CentOS7 firewalld docker 端口映射问题,firewall开放端口后,还是不能访问,解决方案
# 宿主机ip: 192.168.91.19 docker run -itd --name tomcat -p 8080:8080 tomcat /usr/local/apache-tomcat-9. ...
- Linux上搭建文件浏览的web服务(创建软件仓库)(一)
软件仓库的创建方式有很多,这是一种很简单的创建方式: python -m SimpleHTTPServer 快速搭建一个http服务,提供一个文件浏览的web服务. 使用:Python SimpleH ...
- Python package project
使用 Python 书写项目打包程序(已经存在 shell 的脚本,经过对比 Python 脚本的执行过程更加的可控人性化实现的功能相同) #!/usr/bin/env python # _*_cod ...