A题挂了,B题WA了4发, C题1A, 比赛结束, D题赛后1A了。 小号变紫了。
A. 仔细看题, 所有数都小于等于7,所以只有1 2 4, 1 2 6, 1 3 6 三种情况,
如果出现5,7就是-1, 否则 cnt[1] = n/3,cnt[2] - cnt[4] == cnt[6] - cnt[3] 而且 cnt[2] - cnt[4] >= 0
我错在出现5,7的情况没考虑,手速太快了,悲剧。
B.贪心,能走一步就走, 注意时间是1e9范围,但总移动次数为n(1e5),所以对于相邻的时间内,有一段时间是肯定可以移动的,移动, 然后在对当前时间点移动。 最后要注意所有时间走完以后可能没有到终点, 在一直移动就可以了。
C小的计算题, 先放下面的长方体, 个数为h/r*2, h变为h%r, 之后根据h的大小可以放1个或2个或3个。
h < r/2: 1 个; h >= r/2 && h < sqrt(3)/2*r : 2 个; h >= sqrt(3)/2*r 3个
D有一个范围很小,是3,所以可以状态压缩dp做。 以n为行, 3为列,dfs即可。
赛后一开始就A了,后来一讨论发现数据水了, 没有O的8个方向上有X的数据,所以我的算法水过了,
现在修正了。我用暴力+容斥AC的,对于对着O的骨牌最多只用三个。
我们可以 +对着1个骨牌的 - 对着2个骨牌的 + 对着3个骨牌的, 暴力先贴好这些情况,然后再算有几种。
E 据说是树链剖分,没学过,明天学习一下再放上来。