ASFNU SC Day3
暑期训练第三天,学习基础算法。
比如:二分和三分,位运算,hash,博弈论等。
------算法模板------
坑放这,再填……
--------例题---------
坑放这,再填……
-------模拟赛-------
首先想到二分答案,这没话说……
原来想的是bfs预处理,再暴力排序,结果是O(nq log^2 n)的,T了。
但是其实只要先排序,跳着查,就能去掉一个log。
我怎么就没想到呢……
以前做过,在这里,只是加了一个输出方案……
结果发现前缀和和排序写混了,就GG了……
后来还是A了就是了。
题解听懂了不会实现,自己yy了一个做法,卡常过了。
就是对于每个字符串长度开一个map,暴力枚举修改哪个点,再放进去匹配。
但是这样n很小的时候就T了,这时我们就需要调参,特判n<=x的情况。
(我不明白为什么不哈希长度反而更快了……)
考虑记搜一个数关于(1<<22)-1的补集的子集,这样就能以O(2^22*22)的复杂度通过本题。
实现也太简单了,不讲,这种题主要是思路。
7分钟切你信不信……
以前做过了,按照两个两个分组,若先手取后面的,后手可把前面的取走相同的数。
这样就转化成有n/2堆石子,石子数为组内两石柱高度之差的nim游戏了。
直接异或就行。
附代码:以后有时间了再放。