去年考的这东西
今年写写解析
T3 为什么是位,当然就是说一个比特啦
然后×起来就可以了
T15背过呗
然后没啥好说的了
阅读程序
T1
1 1000是必挂好不好
2 如果是个常数列呢
3 没错,例如递增序列和递减序列
4 当然,因为这个i和j互换也是会出现的
5 128的二进制全是1,那样的话ans必为128
6 A的最多显然是没有道理的,因为最低为不会变,但是只有一个偶数的话必挂
因为最低为肯定是1,如果输出为奇数,只有一个奇数是可能的,但是奇数特别多显然也是可以的
\(T2\) 这就是个快读排序求第k大而已
1放屁,怎么可能没有l、
2 只是一个死循环而已,不叫”运行错误“
3 其实这玩意没有正确答案来着
4 快排啊,这么有规律的组合,当然是O(n)次就可以翻过来啥的
5平均复杂度就是快排的极限了O(n),但是惨的话每次只能少一个数字,那就是\(O(n^2)\)
6 都为同一个数的话也就是无论如何比较都是没有意义的吗,模拟一下每一次都会把d--跑到L,这样的话每次划分都是非常不均匀的,所有\(O(n^2)\)
\(T3\)这是个啥?
手写的map和queue,然后bfs,给定初始字符串和最终字符串,然后给定m,可以旋转前m个数或者后m个数,问能否得到最终字符串
选择双向bfs
1 显然
2 这左转和右转转起来都不一样了,怎么可能对呢
3 这个程序又不会把全排列跑一边
4 手动模拟计算需要转多少圈,我们这道这个bfs想干啥了,所以说呢,我们只要转一个串,看看能不能转出另外一个串就可以了,然后转不出来了
5 什么鬼东西,插值
6 注意一下两次旋转中为与m的位置是可以向左或向右都可以的,也就是说可以交换左右的字符的,然后搞几个小数据,就可以发现是C了