感受总结
考的是2022牛客提高组的第四场。
第一眼难度偏高,第一遍读完题后,四道题都没什么思路,只有一些简单的暴力。
后来仔细想第一题,乱搞了接近80分,写第三,四题的暴力。
第四题40分暴力挂了30分,第三题几乎想出了正解,没有时间写,乱搞了接近20分。
总体结果还行,但在第一题消耗2个半小时不值得,第三题没有相信自己大胆写,第四题简单暴力耗时长的问题需要解决。
试题总结
T1
仔细读题后,后手可以跟着先手取同一个数字,如果所有可取的数都有偶数个,先手必败,如果有一个奇数,先手取最小的奇数使其变成偶数,这样所有可取的数都有偶数个,后手变先手且必败,所以题目转化为树上任意两点间所有数都出现偶数次的个数,答案为n*(n-1)/2-统计的个数。
(我没想到的内容)用异或处理可以快速算所有数都出现偶数次,所以dfs处理从每一个点到根的边的异或和,用map存每个异或值的个数。
如果直接用,可能出现1^3=2,2^2=0的情况,导致不同的异或为0,所以对边权hash或随机化处理。
T3
对于每个点,一次加它的儿子,一旦大于B,就把它们分成一个省,省会为当前点,如果最后剩一些点,就将这些点留到上一层处理,如果根节点有剩就加到上一个省里,因为上一个省最多有2B-1个,加一个小于B的数一定小于3B,(特判所有点加起来不到B或刚好到B)