The most orzed and orzing man
The most orzed and orzing man
题目链接:http://acm.xidian.edu.cn/problem.php?id=1184
Sprague-Grundy定理:https://zhuanlan.zhihu.com/p/20611132#!
博弈论 SG函数
看到这题一脸懵逼啊,看了一下午才弄明白,是这五题最难的(但是为什么这么多人过,不科学啊)= =
Sprague-Grundy定理大致讲了这样一个东西:
对于一个满足条件的独立博弈游戏,有着必败态和必胜态,我们只需要知道当前状态是不是必胜态,就可以知道会不会赢。然而多个多个博弈游戏组成的博弈集群游戏,只知道各个游戏是否为必胜态是不行的(必胜态数大于1时,有可能胜,有可能败),因此就需要计算SG值:
对于一个必胜态,如果它只能转移到必败态,那么将其定义为一级必胜态;
如果它能转移到一级必胜态或必败态,那么将其定义为二级必胜态;
如果它能转移到一级到k级必胜态或必败态,那么将其定义为k+1级必胜态。
而多个游戏的总状态就是当前各个游戏的状态级数(必败态为零级状态)的异或值(详细证明见上面的链接)。
对于这题的单个游戏来说,当a[i]%3=0时,为必败态(零级状态),当a[i]%3=1时为一级必胜态,当a[i]%3=2时为二级必胜态,所以整个游戏群的状态为各个状态级数的异或值。
然后发现一个多星期前的cf好像有类似的博弈题 是道B题 当时游少直接跟我说怎么写 后来也没问...惭愧= =
代码如下:
#include<cstdio>
using namespace std;
int n,t;
int main(void){
while(~scanf("%d",&n)){
int ans;
scanf("%d",&ans);
ans%=;
for(int i=;i<n;++i){
scanf("%d",&t);
t%=;
ans^=t;
}
if(ans)printf("Yes\n");
else printf("No\n");
}
}
The most orzed and orzing man的更多相关文章
- hdu5197 DZY Loves Orzing(FFT+分治)
hdu5197 DZY Loves Orzing(FFT+分治) hdu 题目描述:一个n*n的矩阵里填入1~n^2的数,要求每一排从前往后能看到a[i]个数(类似于身高阻挡视线那种),求方案数. 思 ...
随机推荐
- knn分类算法学习
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的 ...
- BHuman文档结构
Chapter 2 : a short introduction how to build the code including the required software and how to ru ...
- 关于C#继承运用的总结
整体代码部分: 解决方案: 父类Person类: using System; using System.Collections.Generic; using System.Linq; using Sy ...
- js中角度计算
-. js 关于三角函数算法 弧度 和 角度的理解, 以及相互转换 角的两种单位 度 和 弧 1.弧度的定义 我们知道"度"的定义是,"两条射 ...
- case a.ass_term_unit when '01' then (case a.ass_profit_mode when '0' then round(sum(a.ass_amount*a.ass_annual_rate/365*365*a.ass_term/100) ,2) when '1' then round(sum(a.ass_amount*a.ass_annual_rate/
--01 年 02 月 03 日 select a.ass_due_date, case a.ass_term_unit when '01' then (case a.ass_profit_mode ...
- PHP判断一个变量是否可以通过foreach进行遍历
<?php if( !is_array( $items ) && !$items instanceof Traversable ) //Throw exception here ...
- 解决IE浏览器“无法显示此网页”的问题
诊断后提示:远程计算机或设备不接受连接 其他浏览器可以正常使用,QQ什么的也都正常,只有IE不能上网诊断提示:远程计算机或设备将不接受连接 ,网上找了好多方法都行不通.最后发现了这种方法,问题简单解决 ...
- 终于了解了User-Agent的历史了
你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? 1 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.3 ...
- SqlParameter 中 top 的使用
public DataTable GetAdminTopDCSCheckReport(int top) { StringBuilder strSql = new StringBuilder(); st ...
- SASS相关
1.安装ruby http://rubyinstaller.org/downloads/ 2.安装SASS gem sources --remove https://rubygems.org/ gem ...