转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove
这场CF是很奇怪的。。。。
总体来看,题目不是特别难,但是也不是特别水,而且又比较坑,还不好写。。。。
题意:给一个n*m的网格,两人轮流在上面沿着网络纸横切或者竖切,直接不能切者为输。初始状态是已经切了K刀了。。。
http://codeforces.com/problemset/problem/277/C
比赛的时候还是有点惧怕,简单看了下题意就没仔细想了
这题有个特别是,直接在n*m上的网格纸上切,并不进行移动,而且长度自选,只要产生新的切痕
大概意思就是行列之间是不会互相影响的
这样就成了一个基础的NIM博弈了
每一行和每一列单独看成成一堆石子,完整部分的长度就是石子个数,每切一刀就相当于取走若干石子
最后取完成为胜,最基础的NIM了
之前的处理会比较纠结,初始状态下也不一定是连续的切痕,可以对于某一列是一些离散的
vector存下所有区间,然后做一下简单的区间并
对于第一步的走法,枚举(注意:TLE过一次,我SB连一点优化都没,对于没有动过的行或者列最多枚举一次就行了,等价的)
#include
#include
#include