Codeforces Round #180
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove
然后恭喜我自己,通过这场欢乐的比赛,CF重回2000+。
大概就是前20分钟解决 两题,然后就玩了1个半小时,最后上来 cha几个人,就欢乐地进了top 100。。。。
也暴露出实力有多弱。。。构造题完全不会。。。sad
div2 A:大概就是分为三种情况,全L,全R,先R后L。
div2 B:模拟,比较一下曼哈顿距离,减少则移动。
div1 A:比赛的时候是蒙的,赛后发现是对的,然后可证明 。
首先对于偶校验来说,如果本来有偶数个1,那么1的个数只可能减少,不可能增加。如果有奇数个1的话,可以填充1个1,变为偶数个1之后,也便不会再增加。所以只需要比较一下1的个数就行了。
至于这样为什么一定有解,其实只要在S串后面一位位地凑出T串就行了。
div1 B:也挺水的,从大到小遍历一下
div1 C:给跪。。。构造全蒙了,而且1/3这种奇葩的东西。。构造见孟神blog
div1 D:n*(m-1)+m*(n-1)个条件,看成两个部分,满足大的那个,然后另外一个满足一半就好。
如果颜色种数为1 话,那就验证一下。
如果颜色种数大于1。为什么大的那部分一定能满足呢,那显然只包括行的关系或者列的关系,只需要每行或者每列依次根据关系构造就行。
那么要满足小的那部分,至少有一半能满足。大概是这样的。
比如说先填充行,使得这一行全都满足行的约束,这一步只需要两种颜色就行了。要么相等要么不相等。。。
填充完毕之后,和上一行比较列的关系,如果有一半不满足,那么只需要把当前行颜色取反(就是两种颜色换一下),满足条件的个数和不满足的个数也会互换。。
dvi1 E:孟神blog很清楚,大概就是6个点,3条线的五种情况。然后用树状数组去维护就好了。 。。神!!!