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 思维题的更多相关文章

  1. [UVA12235] Help Bubu 思维题+状态定义+Dp

    Online Judge:UVA12235 Label:思维题,状态定义,状压Dp 题面: 题目描述 有一个书架,上面放了n本书,从左往右的第i本书的高度为h[i].定义书架的混乱度为连续等高段的个数 ...

  2. zoj 3778 Talented Chef(思维题)

    题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...

  3. cf A. Inna and Pink Pony(思维题)

    题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...

  4. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  5. 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)

    思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...

  6. 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 ...

  7. PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记

    PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. Ethical Hacking - GAINING ACCESS(3)

    Sever side attacks code execution Let‘s analyze the Zenmap scan result first and search for somethin ...

  2. Python Ethical Hacking - VULNERABILITY SCANNER(1)

    HTTP REQUESTS BASIC INFORMATION FLOW The user clicks on a link. HTML website generates a request(cli ...

  3. 机器学习作业---K-Means算法

    --------------------------K-Means算法使用-------------------------- 一:数据导入及可视化 import numpy as np import ...

  4. .Net Core Controller

    [HttpGet] public async Task<ActionResult<IEnumerable<ABBUserModel>>> GetUser() { / ...

  5. spring学习(五)详细介绍AOP

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待 它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封 ...

  6. 从零开始学Python网络爬虫PDF高清完整版免费下载|百度网盘

    百度网盘:从零开始学Python网络爬虫PDF高清完整版免费下载 提取码:wy36 目录 前言第1章 Python零基础语法入门 11.1 Python与PyCharm安装 11.1.1 Python ...

  7. netty 使用字典提升短文本的压缩效果

    1 问题 术语:压缩率,compression ratio,压缩后的大小/压缩前的大小,越小说明压缩效果越好. 在使用netty的JdkZlibEncoder进行压缩时,发现了一个问题:它对于短文本( ...

  8. date 常用格式化输出

    date "+%Y-%m-%d" 2013-02-19 date "+%H:%M:%S" 13:13:59 date "+%Y-%m-%d %H:%M ...

  9. PHP代码实现二分法查找

    需求:定义一个函数接收一个数组对象和一个要查找的目标元素,函数要返回该目标元素在数组中的索引值,如果目标元素不存在数组中,那么返回-1表示. //折半查找法(二分法): 使用前提必需是有序的数组. / ...

  10. spring boot 项目连接数据库查询数据过程

    spring boot 项目搭建 pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...