Hakase and Nano【博弈】

 

Hakase and Nano

时间限制: 1 Sec  内存限制: 128 MB
提交: 533  解决: 155
[提交] [状态] [命题人:admin]

 

题目描述

Hakase and Nano are playing an ancient pebble game (pebble is a kind of rock). There are n packs of pebbles, and the i-th pack contains ai pebbles. They take turns to pick up pebbles. In each turn, they can choose a pack arbitrarily and pick up at least one pebble in this pack. The person who takes the last pebble wins.
This time, Hakase cheats. In each turn, she must pick pebbles following the rules twice continuously.
Suppose both players play optimally, can you tell whether Hakase will win?

 

输入

The first line contains an integer T (1≤T≤20) representing the number of test cases.
For each test case, the fi rst line of description contains two integers n(1≤n≤106) and d (d = 1 or d = 2). If d = 1, Hakase takes first and if d = 2, Nano takes first. n represents the number of pebble packs.
The second line contains n integers, the i-th integer ai (1≤ai≤109) represents the number of pebbles in the i-th pebble pack.

 

输出

For each test case, print “Yes” or “No” in one line. If Hakase can win, print “Yes”, otherwise, print “No”.

 

样例输入

复制样例数据

2
3 1
1 1 2
3 2
1 1 2

样例输出

Yes
No

题目大意:有两个人Hakase和Nano,先输入一个整数t,代表有t组数据,每组数据先输入两个整数n,d,代表有n堆石子,d为一代表Hakase先手,d为2代表Nano先手,下面一行输入n个整数,代表每堆石子的个数,由于Hakase作弊,所以每次Hakase都拿两次石子,而Nano每次拿一次,每次取石子最少取一个,最先拿完所有石子的人获胜,若最终Hakase获胜,则输出Yes,否则输出No

解决方法:博弈题目,对于n==1的情况,谁先手则谁获胜,对于n==2的情况,怎么都是Hakase获胜,对于n大于3的情况,当Hakase先手时,只要不是遇到n%3==0&&n堆石子个数均为1的情况,那么Hakase一定获胜,否则Nano获胜;当Nano先手时,若Nano想获胜,他只有想办法让情况变为n%3==0&&全为1,所以分类讨论即可。

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
int t,n,d;int main() 
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);cin>>t;while(t--){int x,num1=0,num2=0;cin>>n>>d;for(int i=1;i<=n;i++){cin>>x;if(x==1)num1++;else num2++;}if(n==1) {if(d==1) cout<<"Yes"<<endl;else cout<<"No"<<endl;}else if(n==2) {cout<<"Yes"<<endl;}else {if(d==1) {if(num1==n&&n%3==0) cout<<"No"<<endl;else cout<<"Yes"<<endl;}else {if(n%3==0) {if(num1==n-1) cout<<"No"<<endl;else cout<<"Yes"<<endl;}else if(n%3==1) {if(num1==n||num1==n-1) cout<<"No"<<endl;else cout<<"Yes"<<endl;}else {cout<<"Yes"<<endl;}}}}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【思维】过分的谜题

题目描述 2060年是云南中医学院的百年校庆&#xff0c;于是学生会的同学们搞了一个连续猜谜活动&#xff1a;共有10个谜题&#xff0c;现在告诉所有人第一个谜题&#xff0c;每个谜题的答案就是下一个谜题的线索....成功破解最后一个谜题后&#xff0c;答案就是指向奖励的线索…

【bfs】调酒壶里的酸奶

题目描述 最近小w学了一手调酒的技巧&#xff0c;这么帅的操作&#xff0c;说不定能靠这个俘获女神的芳心&#xff0c;为了在女神面前露一手&#xff0c;他想在学校里建一个"pub"&#xff0c;但是显然学校不可能让他真的建一个"pub"&#xff0c;那么他退而…

【dfs】Election of Evil

题目描述 Dylan is a corrupt politician trying to steal an election. He has already used a mind-control technique to enslave some set U of government representatives. However, the representatives who will be choosing the winner of the election is a differe…

【思维】Iranian ChamPions Cup

题目描述 The Iranian ChamPions Cup (ICPC), the most prestigious football league in Iran, is reaching its end, and people are eagerly waiting for the finals, which happened to be between the two most popular Iranian teams, Persepolis and Esteghlal. The ICP…

【数学】Chaarshanbegaan at Cafebazaar

题目描述 Chaarshanbegaan is a gathering event at Cafebazaar similar to TGIF events at Google. Some entertainment programs like pantomime, foosball, Xbox/PS4, and several board games are part of the event. You are going to set up a dart game in Chaarshanbe…

【思维】Congestion Charging Zone

题目描述 Tehran municipality has set up a new charging method for the Congestion Charging Zone (CCZ) which controls the passage of vehicles in Tehran’s high-congestion areas in the congestion period (CP) from 6:30 to 19:00. There are plate detection came…

【二分】LED

题目描述 A Light-Emitting Diode (LED) is a semiconductor light source, which emits light when an electric current of voltage higher than a threshhold is applied to its leads. ACM R&D recently reported that they have succesfully developed a new LED, na…

【差分数组】Master of GCD

题目描述 Hakase has n numbers in a line. At fi rst, they are all equal to 1. Besides, Hakase is interested in primes. She will choose a continuous subsequence [l, r] and a prime parameter x each time and for every l≤i≤r, she will change ai into ai*x. To…

【模拟】Ground Defense

题目描述 You are a denizen of Linetopia, whose n major cities happen to be equally spaced along an east-west line. In fact, they are often numbered in order from 1 to n, where 1 is the westmost city and n is the eastmost city. Linetopia was a lovely plac…

【模拟】Bulbs

题目描述 Greg has an m n grid of Sweet Lightbulbs of Pure Coolness he would like to turn on. Initially, some of the bulbs are on and some are off. Greg can toggle some bulbs by shooting his laser at them. When he shoots his laser at a bulb, it toggles th…

【模拟】Ingenious Lottery Tickets

题目描述 Your friend Superstitious Stanley is always getting himself into trouble. This time, in his Super Lotto Pick and Choose plan, he wants to get rich quick by choosing the right numbers to win the lottery. In this lottery, entries consist of six dis…

【数学】Hunter’s Apprentice

题目描述 When you were five years old, you watched in horror as a spiked devil murdered your parents. You would have died too, except you were saved by Rose, a passing demon hunter. She ended up adopting you and training you as her apprentice. Rose’s cur…

【模拟】Thanks, TuSimple!

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId5979 Thanks, TuSimple! Time Limit: 1 Second Memory Limit: 65536 KB In the very first sentence of the very first problem, we would like to give our sincere thanks to TuSimple,…

【二维差分】Monitor

Monitor 题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid6514 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 163840/163840 K (Java/Others) Total Submission(s): 600 Accepted Submission(s): 190 Problem Description Xiaoteng has a la…

【数学】MORE XOR

Given a sequence of nnn numbers a1,a2,⋯&ThinSpace;,ana_1, a_2,\cdots, a_na1​,a2​,⋯,an​ and three functions. Define a function f(l,r)f(l,r)f(l,r) which returns ⊕a[x](l≤x≤r)\oplus a[x] (l \le x \le r)⊕a[x](l≤x≤r). The \oplus⊕ represents excl…

【数学】Element Swapping

Element Swapping Time Limit: 1 Second Memory Limit: 65536 KB DreamGrid has an integer sequence a1,a2,a3,…,ana_1,a_2,a_3,\dots,a_na1​,a2​,a3​,…,an​ and he likes it very much. Unfortunately, his naughty roommate BaoBao swapped two elements aia_iai​ an…

【二分+二维前缀和】Largest Allowed Area

Largest Allowed Area 时间限制: 1 Sec 内存限制: 128 MB 提交: 146 解决: 54 [提交] [状态] [命题人:admin] 题目描述 A company is looking for land to build its headquarters. It has a lot of money and can buy as many land patches as it needs. Its goal, howev…

【数学】Floating-Point Hazard

Floating-Point Hazard 时间限制: 1 Sec 内存限制: 128 MB 提交: 106 解决: 42 [提交] [状态] [命题人:admin] 题目描述 Given the value of low, high you will have to find the value of the following expression: If you try to find the value of the above express…

【manacher】Strings in the Pocket

Strings in the Pocket Time Limit: 1 Second Memory Limit: 65536 KB BaoBao has just found two strings ss1s2…snss_1s_2\dots s_nss1​s2​…sn​ and tt1t2…tntt_1t_2\dots t_ntt1​t2​…tn​ in his left pocket, where sis_isi​ indicates the iii-th character in…

【并查集+dp】Team

Team 时间限制: 1 Sec 内存限制: 128 MB 提交: 124 解决: 10 [提交] [状态] [命题人:admin] 题目描述 ACM-ICPC is a interesting game. A team takes part in this game must consist of exactly (no more and no less) three players. Every year, many new members wil…