考前来水一水去年题……希望明天 rp++
。
选择
CBBBD BAACC CDBDC
全是水题,但最后一个常识可能确实没那么常。
阅读程序
1
FFAACC
实现的是对于数列中所有不相等的数对求按位或最大值。
只需要注意不相等和把加和减按位与转化成按位或就可以了。
2
FTXBAD
手动实现了一个二分查找第 (k) 小元素。
需要注意判断题问的是运行错误,但即使这样好像也有一些争议,因为实现不精细导致 (n=1) 时会出问题……
第三个说是 (O(log^2n)),但我怎么算都是 (O(log n))……
第四个很显然,只有第一遍需要翻转整个序列。
第五个显然平均复杂度是线性,最坏复杂度是每次都随机到头上。
第六个相当于取了但没有取,每次还是要跑一遍所以是平方。
3
TFFDDC
题面看起来很吓人,仔细一看是因为写了一个屑线性 map
和队列。
去掉多余的东西可以发现是每次把一个固定位置的字符拿到开头或结尾,用双向 BFS 求几步把 (s0) 变成 (s1)。
复杂度不会算……为啥是 (O((n!)^2n)) 啊……
第四个显然是做不到的。
第五个可以玄学找规律:凭借经验和感觉或者强行构造可以发现大概平方级别的样子,正好拿给出的值插一下就行了。
第六个题目给的提示很清楚了,手动模拟一下发现如果 (n) 为奇数 (m) 为偶数那么往左往右都是偶数对发生变化,不一定有解。
完善程序
1
DBDDB
水题,注意整数不能直接除之类的细节即可。
2
DBCAB
警惕 CCF 怪异位运算。
第一个直接减 lowbit
,但是 CCF 写得比较阴间。
第三个注意细节,空子序列的价值为 (0)。
第四个是枚举第二维,那根据定义选择即可。
第五个是枚举第一维,应该只算前八位的贡献,所以排除 C。