首页 > 其他分享 >牛客小白月赛65 D题 题解

牛客小白月赛65 D题 题解

时间:2023-01-07 12:56:36浏览次数:62  
标签:le 堆取 牛牛 题解 牛妹 石子 最小 牛客 65

原题链接

题意描述

一共有两堆石子,第一堆有 \(a\) 个,第二堆有 \(b\) 个,牛牛和牛妹轮流取石子,牛牛先手,每次取石子的时候只能从以下 \(2\) 种方案种挑一种来取(对于选择的方案数必须保证当前石子 \(\ge\) 取的石子个数才能取):

  1. 第一堆取 \(1\) 个,第二堆取 \(2\) 个
  2. 第一堆取 \(2\) 个,第二堆取 \(1\) 个

谁先无法取石子,谁就输了。假设牛牛和牛妹都很聪明,请问谁会获胜?

多组数据,(\(1 \le T\le 10^5,1 \le a,b\le 10^{18}\))

做法分析

题中是两堆石子,但是我们可以先简化下,假如只有一堆石子是什么情况,就是说,有一堆石子,每次最多取2个,不能不取,最后取光者胜利,这样的胜负情况是怎么样的,也就是著名的巴什博弈

结论是,当石子不为\(3\)的倍数时,先手必胜。

现在我们再回到原题,发现其实我们只要讨论最小的内堆就行了,因为假设最小的内堆显示牛牛胜,无论牛妹怎么取,牛牛都可以和牛妹做相反取法,也就是牛妹取\(1,2(2,1)\),牛牛就取\(2,1(1,2)\),正好相反,这样的话最后肯定是最小的内堆先结束,再假设最小的内堆显示牛妹胜,牛妹同样会做和牛牛相反的取法,这时最小的时候同样会先结束。

那我们就考虑,牛牛先手能否造成牛妹取时是输的局面,也就是说牛牛能否让取后最小数变为\(3\)的倍数。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int T;
int main()
{
	cin >> T;
    while(T--)
    {
        ll a, b;
        cin >> a >> b;
        if( min(a - 2, b - 1) % 3 == 0)
            printf("niuniu\n");
        else if( min(a - 1, b - 2) % 3 == 0)
            printf("niuniu\n");
        else printf("niumei\n");
    }
	
	return 0;
}

标签:le,堆取,牛牛,题解,牛妹,石子,最小,牛客,65
From: https://www.cnblogs.com/six-one/p/17032473.html

相关文章

  • NOI2003 文本编辑器 题解
    \STL大法好/正规解法块状链表,这里采取的是黑科技解法。rope是扩展STL库中的一个数据结构——可持久化平衡树,相比较set,它更适合区间插入和删除。这里用来解此题,就显得十......
  • 牛客小白月赛补题65
    A.牛牛去购物这道题目纯纯数学题,一遍一遍更新最小值,我们每一次都用a*i+b*j,计算出最小的答案ACcode#include<bits/stdc++.h>#defineintlonglongconstint......
  • CF1779C Least Prefix Sum 题解
    可能更好的阅读体验题目传送门题目大意给定一个序列\(a\),长度\(n\)。每次操作可以把\(a_i\)变成\(-a_i\)。要求\(a\)做前缀和之后的序列\(s\)中最小值为\(s......
  • CF1779D Boris and His Amazing Haircut 题解
    可能更好的阅读体验题目传送门题目翻译题目解析如果有\(a_i<b_i\)直接输出NO。我们发现:如果\(b_l=b_r=x\)并且所有的\(l\lei\ler\)都有\(b_i\lex\)那么......
  • CF1779A Hall of Fame 题解
    可能更好的阅读体验题目传送门题目翻译有\(n\)个纪念碑以及对应的\(n\)个台灯。给定一个由L和R组成的序列\(a\),代表台灯的朝向。如果第\(i\)个台灯为L,代......
  • 【题解】P4027 [NOI2007] 货币兑换
    题意好长,但是不想概括了。\cdq/!思路cdq分治+凸包。首先考虑令\(f_i\)表示第\(i\)天可以得到的最大金额,\(f_1=s\)因为\(rate_i\)是常数,并且保证存在最优方......
  • 【题解】CF1178G The Awesomest Vertex
    题意给定一棵大小为\(n\)的树以及\(m\)个操作,定义一个结点\(u\)的权值为:\(|\sum\limits_{w\inR(v)}a_w|\cdot|\sum\limits_{w\inR(v)}b_w|\)其中\(R(v)......
  • 230102模拟题解
    t1容易发现对于奇数和偶数,能满足条件的长度分别是单调的,所以可以分别二分答案检查。检查的时候对于差分序列做哈希即可,然后用set/map/哈希表判\(B\)的子段是否有\(A......
  • CF865B Ordering Pizza 题解
    简要题意:有\(n\)个人去披萨店吃披萨,有两种披萨,每个披萨有\(m\)片。现在第\(i\)个人要吃\(c_i\)片披萨,如果吃一片第一种披萨会获得\(a_i\)的幸运值,如果吃一片第二......
  • configmap出现/n问题解决
    1.现象原始文件肉眼显示正常,如下图命令行显示整个data部分成了一坨,回车全变成了/n,虽然不影响使用,但是对维护查看比较麻烦,如下图2.问题原因1.配置文件里有一些Tab......