codeforces 353 解题报告
codeforces吧
全部回复
仅看楼主
level 1
cnu_long 楼主

A
上下分别求和,若结果为
上偶下偶:0
上奇下奇:元素中是否有一个上下之差为奇数的,有1,无-1
上奇下偶或上偶下奇:-1
B
其实最优排法总能使两边种类数差绝对值不大于1,在分配的过程中也是如此
排序后,先拍个数为偶数的,两边对半分
排奇数的:sa//a中的种类数,sb//b中的种类数 na//a中的当前总个数 nb//b中的当前总个数,实际上 abs(na-nb)<=1;
注意奇数为 1 和大于1 情况,个数相等的时候,种类数相等优先填a。。种类数不等的时候。。
个数不等的时候。。
C
举个例子 0011011 那么比 0000011小的中只有 1111101最大
比0001011小比0000011大的的只有 1110011最大I
2013年10月12日 09点10分 1
level 1
cnu_long 楼主

D
首先当前已经到终点的F不能再考虑了。
其实只用看最后一个(n’th)F的耽搁步数 delay ,ans=place(F)-n+delay;
初始化的第一个F一定是没到终点的F
轮流考虑第 i个F和第i-1个F之间的状况,
如果 delay-(i-pre-1)+1<=1 //当前F在i,前个F在pre
更新 delay=delay-(i-pre-1)+1;否则 delay = 0; E首先首尾情况得注意连续相同的个数大于1(长串)时,单独考虑一遍
长串不能在端点取,设想如果取到端点,即会影响到这条串,又会影响其他的,(贪心)
在考虑剩下的连续长度为1的(短串),连续的短串数/2为当前连续短串中的可选点数
特别数据 01 结果 1I
2013年10月12日 09点10分 2
1