2017CCPC杭州-C. Hakase and Nano

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6266

以及pdf :http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf

题意:给出 N 堆石头,每堆对应有 ai 个。其中A取时 取两次,B取时取一次(每次取时至少取一个,最多取完一堆)现在给出堆数以及对应的每堆个数,以及先后手关系(输入1代表A先手,输入2代表B先手)。问最后先手是否能取得胜利。

思路:对于博弈问题,一般能找规律的找规律,不行就用sg函数。(...本弱鸡不会用sg函数写这个题)

所以我们可以先对所有简单情况进行列举。同时,对于博弈问题,我们一定是要着重观察 先手对应的 P-position.即后手必胜,(或者说对于当前取的人必输的状态)。因为 P态只能转到N态 ,而 N至少有一种可能转到P 状态。所以只要找到 P 状态,则其他所有状态均为 先手获胜。

对于石子问题,我们从最简单能判断的状态举例起:由于 全部为 1时取法是固定的 所以先观察全为1的状态:

A先手:
1       1 1      1 1 1    1 1 1 1   1 1 1 1 1 ...
A赢      A赢      A输       A赢      A赢
所以全为1时,我们可以看到只要是 3 的倍数 A必输,即A处于P-position当不全为1时(X,Y,Z为任意数) X      X Y    1 X Y              1 1 X Y  ... 由此递推下去发现A不会再输了A赢    A赢     A赢(转换成1 1 1)   A赢
B先手:
1         1 1      1 1 1     1 1 1 1 ...
A输       A赢      A赢       A输
所以当全为1时,我们发现 只要是 n%3==1 则B能赢,否则会输当不全为1时(X,Y,Z为任意数) X      X Y    1 1 X    1 1 X Y   1 1 1 X                1 1 1 1 X ...A输    A输     A输      A赢        A输(从1 1 X递推过来)    A赢

综上就会发现 (1)A先手:当 全为 1 且个数 %3==0,则A输(2)B先手:当 1 的个数大于等于 n-1 时,且 n%3 == 1 A输,如果 1 的个数 为 n-1 且 n%3==0 时A输

code:

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define mp make_pair
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
const double Pi = acos(-1.0);
const double esp = 1e-9;
const int inf = 0x3f3f3f3f;
const int maxn = 1e3+7;
const int maxm = 1e6+7;
const int mod = 1e9+7;

int main(){
    int T;
    cin>>T;
    while(T--){
        int n,m,tmp;
        int cnt = 0;
        cin>>n>>m;
        for(int i=0;i<n;i++){
            scanf("%d",&tmp);
            if(tmp==1) cnt++;
        }
        //当所有全为1,切n%3时
        if(m==1){
            if(cnt==n&&!(n%3))    cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        }else{
            if((cnt>=n-1&&(n%3)==1)||(cnt==n-1&&!(n%3))) cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        } 

    }
}

原文地址:https://www.cnblogs.com/Tianwell/p/11469324.html

时间: 2024-10-13 07:43:27

2017CCPC杭州-C. Hakase and Nano的相关文章

2017ccpc杭州站 Problem B. Master of Phi

公式,化简. #include<bits/stdc++.h> using namespace std; typedef long long int ll; const int N=10000+10; #define MOD 998244353 ll power(ll a, ll b) { ll res = 1; while(b) { if(b&1) { res=(res*a)%MOD; } b>>=1; a=(a*a)%MOD; } return res%MOD; } in

Hakase and Nano HDU - 6266 (博弈+思维)

http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf 1 #include <stdio.h> 2 #include <string.h> 3 4 int a[1000005]; 5 6 int main() 7 { 8 int t, i, n, d, x; 9 scanf("%d", &t); 10 while(t--) 11 { 12 x = 0; 13 scanf(&quo

2017 CCPC杭州 题解

2017CCPC杭州题目PDF Problem A. Super-palindrome 题解: 给你一个字符串,每一步可以将一个字符替换为另一个字符,问你最少多少步可以使得,该字符串任意奇数子串为回文串,偶数子串为回文串. 满足上面条件一定是ababab这种形式,所以我们只要找到数量最多的两种字符用n-numa-numb得到ans1,有可能一种字符的数量过多,这时候我们只要把所有字符都变成这种字符就行了.得到n-numa,ans2; 在ans1和ans2中去最小值就是答案了: 参考代码: #in

Nano快速入门

Windows Server 2016 提供了新的安装选项:Nano Server. Nano Server 是针对私有云和数据中心进行优化的远程管理的服务器操作系统. 类似于 Windows Server 的"服务器核心"模式,但显著变小了,无本地登录功能,且仅支持 64 位应用程序.工具和代理. 其所需的磁盘空间更小,启动速度明显更快,且所需的更新和重启操作远远少于 Windows Server. 当它未重新启动时,则可以更快地重新启动. Nano Server 安装选项仅适用于

Linux菜鸟的笔记(二)---- &quot;nano&quot;

文章的题目是加了引号的nano,提起nano我们会想起啥: 下面这个 还是这个 no,no,no! 我们的重点是linux,当然是linux的nano编辑器啊!nano在我心中的地位是:最简单的编辑器 接触nano时还是个linux小白,当时入手了树莓派3b,使用树莓派时需要配置个静态的ip,不需要经常移动.当时就百度了一下咋编辑网络配置文件,有人说用vi/vim,二话不说,没点linux基础就vim /etc/network/interface  进入发现界面挺好看,花花绿绿的.不过敲键盘没反

一直免费,还免蓝点:超能云(SuperVessel)杭州分站盛大开幕, 更多免费资源送你!

为了能更好的支持OpenPOWER的开发者及社区,为了能够支持更多用户在超能云上实现他们的奇思妙想,SuperVessel超能云(http://www.ptopenlab.com)团队经过日夜奋战,推出了超能云-杭州分站. 杭州分站同样基于POWER/OpenPOWER的硬件架构,利用OpenStack技术打造,与北京站采用了同样的技术体制.在业界,超能云第一次利用OpenStack在广域网向用户提供多站点服务. 为了庆祝第一个分站的上线,SuperVessel双站免蓝点使用一周,快来尝鲜吧!尝

安全狗路演·杭州站

在互联网+时代,不管是电商.P2P.还是游戏行业,创业的热情已经被完全点燃,然而,但是我们常常忽视了创业和奋斗途中一个重要的问题--网络安全.国内知名安全品牌,安全狗将携著名神秘黑客空降杭州楼友会咖啡,与初创者以及广大安全爱好者共同聊聊安全那些事. 这里有成功的创业者,这里有顶尖的企业家,这里有资深的安全专家,这里有专业的安全架构师......只要你敢问,没有我们不能答:只要你想知道,没有我们不能回. "无创业 不安全",安全狗让创业更简单,让创业更安全!同时我们还为现场的朋友们准备了

初创公司必看 杭州靠谱2B创业梯队

过去几年中,我们已经看到了互联网巨头对云服务的投入,阿里云.百度云.腾讯云.网易云,还有京东.迅雷也开始做云. 不同于这些巨头把云作为自己业务的补充,有一批企业把企业级云服务作为了自己打磨的新方向.当不少国内创业者还沉浸在O2O的热潮之中,企业级服务正悄然成为投资机构关注的新重点.过去的一年里,资本市场在企业服务领域的投资翻倍增长,频频曝出现象级的融资. 投资机构把ToB领域分为两类.一种是以交易平台为主,比如最早的阿里巴巴,以撮合企业间的交易为主,另一种则是企业级服务,主要是面向企业的工具应用

杭州软装培训:“硬装”和“软装”的区别

    提起"软装饰",我们更多地想到的是窗帘.地毯.壁挂,卧室内的被套.床单.毛毯.枕巾.枕套等根据装修效果所选择的融应用和装饰于一体的室内装饰产品.     今天五色光为大家普及一下软装和硬装的知识.     事实上,现代意义上的"软装饰"已经不能和"硬装饰"割裂开来,人们把"硬装饰"和"软装饰"设计硬性分开,很大程度上是因为两者在施工上有前后之分,但在应用上,两者都是为了丰富概念化的空间,使空间异化,