LOJ#551 Matrix
本地打表在线AC什么的最喜欢了。
题意
\(\rm Alice\)和\(\rm Bob\)在玩游戏,他们要给一个\(n\times n\)的矩阵打标记。初始时没有任何标记,每一轮\(\rm Bob\)先手,两个人可以选一个格子打上自己的标记(\(\rm Alice \to A,Bob\to B\)),但如果选择了已经打过标记的格子就输掉游戏。
如果在某个时刻,存在一个长度为\(n\)的排列\(p\)使得对于\(i=1,2,\dots,n\),有第\(i\)行第\(p_i\)列的标记为\(\rm A\)成立,那么\(\rm Alice\)获胜。
如果在\(\lfloor\frac{n^2}{2}\rfloor\)轮后,\(\rm Alice\)依然没有获胜,那么\(\rm Bob\)获胜。
给定\(T\)组询问,每次给定一个数\(n\),问在之前的游戏规则下:
\(1\)、双方记得之前的所有操作,\(\rm Alice\)是否有必胜策略。
\(2\)、\(\rm Alice\)只记得当前这一轮\(\rm Bob\)的操作,\(\rm Bob\)记得所有操作,\(\rm Alice\)是否有必胜策略。
\(T\leq 100,n\leq 10^{18}\)。
题解
这种题目就应该大力猜结论。
先考虑比较简单的第一问,在\(n\)比较大的平凡情况下,假设\(\rm Bob\)标记了第\(x\)行的某个格子,那么\(\rm Alice\)就可以选择第\(x\)行的另一个格子(记为第\(y\)列)。之后,\(\rm Alice\)选择第\(y\)列上的格子一定是不优的,因此对\(\rm Alice\)来说,她可以将棋盘重新看作\((n-1)\times (n-1)\)大小的。只要在\((n-1)\times (n-1)\)时有必胜策略,那么\(n\times n\)时就一定有必胜策略。
那么暴搜最小的有必胜策略的\(n\),可以本地发现\(n=4\)时有必胜策略,因此第一问的答案就是\([n\geq 4]\)。
对于第二问,显然必胜策略应该避免选择已经标记过的格子。可以发现唯一的方法就是使棋盘上的格子两两匹配,对于每一个匹配,假如\(\rm Bob\)选择了其中一个,那么\(\rm Alice\)就立即选择另一个。
首先\(n\)为奇数的时候显然无解,考虑怎么在\(n\)为偶数的时候构造一种匹配方案,使得对于每一个匹配无论选择哪一个,总存在一个排列满足对应的位置都标记了\(\rm A\)。
先本地暴搜\(n\)小的情况(当然要加一点剪枝),可以发现\(n=4\)和\(n=6\)都是有解的。
那么对于更大的\(n\),只要在对角线上依次放上\(n=4\)或\(n=6\)的,剩下的位置随便匹配即可。
比如下面就是\(n=10\)的构造方法,蓝色部分随意匹配即可。
于是第二问的答案就是\([n\geq 4,n\equiv 0(\bmod 2)]\)。
#include<cstdio>
#define int long long
signed main()
{
int T,n;
scanf("%lld",&T);
while(T--)
{
scanf("%lld",&n);
puts(n>=4?"Yes":"No");
puts(n>=4&&!(n&1)?"Yes":"No");
}
return 0;
}
LOJ#551 Matrix的更多相关文章
- soj#551 loj#2833 帐篷
传送门 分析 dp[i][j]表示考虑了i行j列的方案数 我们每次考虑三种情况: 一个点自己放 两个点在同一行 两个点在同一列 代码 #include<bits/stdc++.h> usi ...
- Loj 3058. 「HNOI2019」白兔之舞
Loj 3058. 「HNOI2019」白兔之舞 题目描述 有一张顶点数为 \((L+1)\times n\) 的有向图.这张图的每个顶点由一个二元组 \((u,v)\) 表示 \((0\le u\l ...
- Loj #6069. 「2017 山东一轮集训 Day4」塔
Loj #6069. 「2017 山东一轮集训 Day4」塔 题目描述 现在有一条 $ [1, l] $ 的数轴,要在上面造 $ n $ 座塔,每座塔的坐标要两两不同,且为整点. 塔有编号,且每座塔都 ...
- Loj#6183. 看无可看
Loj#6183. 看无可看 题目描述 首先用特征根求出通项公式\(A_n=p\cdot 3^n+q\cdot(-1)^n\).通过给定的\(f_0,f_1\)可以解出\(p,q\). 然后我们要求的 ...
- Codeforces 551 D. GukiZ and Binary Operations
\(>Codeforces \space 551 D. GukiZ and Binary Operations<\) 题目大意 :给出 \(n, \ k\) 求有多少个长度为 \(n\) ...
- loj#2269. 「SDOI2017」切树游戏
还是loj的机子快啊... 普通的DP不难想到,设F[i][zt]为带上根玩出zt的方案数,G[i][zt]为子树中的方案数,后面是可以用FWT优化的 主要是复习了下动态DP #include< ...
- Loj #3044. 「ZJOI2019」Minimax 搜索
Loj #3044. 「ZJOI2019」Minimax 搜索 题目描述 九条可怜是一个喜欢玩游戏的女孩子.为了增强自己的游戏水平,她想要用理论的武器武装自己.这道题和著名的 Minimax 搜索有关 ...
- 【LOJ】#3098. 「SNOI2019」纸牌
LOJ#3098. 「SNOI2019」纸牌 显然选三个以上的连续牌可以把他们拆分成三个三张相等的 于是可以压\((j,k)\)为有\(j\)个连续两个的,有\(k\)个连续一个的 如果当前有\(i\ ...
- 【LOJ】#3090. 「BJOI2019」勘破神机
LOJ#3090. 「BJOI2019」勘破神机 为了这题我去学习了一下BM算法.. 很容易发现这2的地方是\(F_{1} = 1,F_{2} = 2\)的斐波那契数列 3的地方是\(G_{1} = ...
随机推荐
- 解决:linux 固定ip 导致ping 外网unknown host
首先说下问题产生场景:最近搞jenkins搭建持续集成,搞完后发现服务器ip(ifconfig 红色)老是变化,一怒之下果断修改ip [root@bogon etc]# ifconfigeth0 Li ...
- Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决
解决办法:重写ScrollView,如下代码所示: public class MyScrollView extends ScrollView{ private GestureDetector mGes ...
- Web.config中 mode="RemoteOnly" 跟mode="On" 区别
转载网址:mode="RemoteOnly" 跟mode="On" 区别 <!-- 自定义错误信息 设置 customErrors mode=" ...
- WPF编程,使用WindowChrome实现自定义窗口功能的一种方法。
原文:WPF编程,使用WindowChrome实现自定义窗口功能的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/arti ...
- Android开发——官方推荐使用DialogFragment替换AlertDialog
)比如当屏幕旋转时,AlertDialog会消失,更不会保存如EditText上的文字,如果处理不当很可能引发异常,因为Activity销毁前不允许对话框未关闭.而DialogFragment对话框会 ...
- EZ 2018 03 30 NOIP2018 模拟赛(六)
链接:http://211.140.156.254:2333/contest/67 转眼间上次加回来的Rating又掉完了. 这次不知为何特别水,T1想了一段时间没想出来弃了,导致后面心态炸了. T2 ...
- EZ 2017 12 17初二初三第一次膜你赛
以后平时练习还是写一写吧. (题目搞来搞去太烦了,直接PDF存起来) T1 水题(???),主要是数据水,正解是设一个阙值,然而根本没人打.(暴力出奇迹) CODE #include<cstdi ...
- spring cloud资料汇总
https://www.cnblogs.com/Java3y/p/9540386.html#commentform --非常好的文章,里面还有海量学习资料
- asp.net web api参数
翻译自:http://www.c-sharpcorner.com/article/parameter-binding-in-asp-net-web-api/ 主要自己学习下,说是翻译,主要是把文章的意 ...
- 通过C#的HttpClient模拟form表单请求
post提交表单一般无非是一般text文本和文件类型,如下 <input type="file"/> <input type="text"/& ...