2016年省赛 G Triple Nim】的更多相关文章

2016年省赛 G Triple Nimnim游戏,要求开始局面为先手必败,也就是异或和为0.如果n为奇数,二进制下最后一位只有两种可能1,1,1和1,0,0,显然异或和为1,所以方案数为0如果n为偶数,举个例子,14,二进制为1110,我们按位来拆1110==1000+100+101000=100+100+000也就是上一位的1可以拆成下一位的两个1和一个0,对于n在二进制下的每一个1都可以拆成3种情况(0都有三个位置可以选),所以为3^x,又因为如果每次0都选在同一个位置,就会出现0的情况,…
Problem G: Parenthesis Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 398  Solved: 75[Submit][Status][Web Board] Description Bobo has a balanced parenthesis sequence P=p1 p2…pn of length n and q questions. The i-th question is whether P remains balan…
题目链接 题意 : 给出 N 堆石子,每次可以选择一堆石子拿走任意颗石子,最后没有石子拿的人为败者.现在后手 Bob 可以在游戏开始前拿掉不超过 d 堆的整堆石子,现在问你有几种取走的组合使得 Bob 能保证他在游戏开始后是必胜的. 分析 : 在没有附加规则,即 Bob 可以先取走某些堆的情况下 就是个简单的 Nim 博弈模型,后手必胜当且仅当各个堆的石子的数目的异或和为 0 那么题目就变成了,问有多少种取走组合使得剩下的石子的异或和为 0 可以发现,可取走的石子的堆数 d 的上限不大,所以这个…
2016湖南省赛----G - Parenthesis (括号匹配)   Bobo has a balanced parenthesis sequence P=p 1 p 2…p n of length n and q questions. The i-th question is whether P remains balanced after p ai and p bi  swapped. Note that questions are individual so that they hav…
Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds of Nim games and Alice always goes first. Here is the rule of Nim game: There are some distinct heaps of stones. On each turn, two players should remov…
题目链接  2016 青岛网络赛  Problem C 题意  给出一些敏感词,和一篇文章.现在要屏蔽这篇文章中所有出现过的敏感词,屏蔽掉的用$'*'$表示. 建立$AC$自动机,查询的时候沿着$fail$指针往下走,当匹配成功的时候更新$f[i]$ $f[i]$表示要屏蔽以第$i$个字母结尾的长度为$f[i]$的字符串. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i &l…
2020安徽程序设计省赛 G序列游戏 有一个序列w,初始为空.再给出一个长度为m 单调递增的序列a.你需要对序列w 作如下n 次操作: (1)操作0,在序列尾部添加数字0. (2)操作1,在序列尾部添加数字1. (3) 操作-1,删除序列w 中,所有位于位置ai 的数(1<=i<=m).比如a={1,3,5},就将w 中第1,3,5 个数删除.若ai>w 的当前长度,则该操作停止.输出n 次操作后的序列w. 解题思路: 该题根据题目描述,可以直接定义三个操作对应的函数处理用户输入即可.…
好题 题意:给你n<=100000个数,每个数范围[0,1000],然后给你一个最大的代价T,每次最多合并k个数成为一个数,代价为k个数的总和.问最后合成1个数的总代价不大于T的最小k 题解:我们首先知道当k越大,总代价会越小,这样我们就找到了单调性,可以二分k看是否满足代价(又见最大值最小化问题).然后我们贪心寻找固定k的最小代价,可以想到每次取前k个最小的值合并成一个,再放入数组中继续这个操作,直到最后变成一个数,这样我们可以直接使用优先队列模拟. 但是直接做会超时,所以我就YY了一个优化的…
[参考博客][https://blog.csdn.net/Tawn0000/article/details/82255682] 题意: 将n个数按照每k个一组来合并,合并需要花费的cost是两个数的长度和,问:在T的消费内将所有的数合并所需的最小的k. 分析: 合并之前要处理一下零头,因为每次取k个一直到最后一步剩下的数的个数可能会少于k个,这样的结果就是合并的cost更大了,举个例子:1 2 3 4 5 6,k=4时,先选1 2 3 4然后再5 6 10 是31,但是因为零头有3,先处理3个零…
首发于QQ空间和知乎,我在这里也更一下.   前言 以前高中搞竞赛的时候,经常看到神犇出去比赛或者训练之后写游记什么的,感觉萌萌哒.但是由于太弱,就没什么心情好写.现在虽然还是很弱,但是抱着享受的心情来沈阳玩一圈,总结一下还是可以的……  day -n  某天去数院找学长搞请假条,被无情地奶了一口:“你们要拿金回来啊!”此处应有一个巨大的flag……为滚粗埋下伏笔.  day -1  打印模板……打了200+页……事后证明大量的高中竞赛内容是没卵用的……  day 0  一大早打车去双流坐飞机,…