A
当 n>=30 m 一定 < $2^n $ 所以直接输出即可
B
直接dfs统计即可
C
第一眼是个背包,但 L 太大
发现有二进制,每一个容量正好在二进制上只有一位
脑瘫想法是用每个数的二进制用其他数能表示的就表示,有个30的大常数
其实输入就是有序的,直接让每一位都是最优的即可
D
额
读错题,南坪
选的题越多,耗时越长,有贡献的题也最少
所以二分答案
贪心地选 a>mid 的耗时少的数
E
第一次见到这样的 dp
题目坑点:x,y,z 就是下面的那三个数,不用你自己构造
\(dp_{i,j}\) 为选到第 i 层,值为 j 的最短字符串
但你要是直接这么转移的话,你合并的优先级无法确定
于是加一维表示优先级
转移有5种
- 直接转移
- 加括号: \(( dp_{i,j,k} ) -> dp_{i+1,j,2}\)
- | : \(dp_{i,j1,k1} + | + dp_{i,j2,k2} -> dp_{i+1,j1|j2,0},k1=0,1,2, k2=1,2\)
- & : \(dp_{i,j1,k1} + & + dp_{i,j2,k2} -> dp_{i+1,j1&j2,1},k1=1,2, k2=2\)
- ! : \(! + dp_{i,j,2} -> dp_{i+1,255 xor j,2}\)
反正也没人看,说几句废话
额
算了