「杂录」CSP-S 2019 爆炸记&题解
考试状况 \(Day1\) \(8:30\) 解压,先打个含头文件和 \(freopen\) 的模板程序,准备做题。 \(8:35\) 开题,心想着按顺序做吧,毕竟难度一般是按顺序排的。 第一题,一眼看过去。 标题:格雷码 描述:格雷码是 \(balabala\) ,有个方法可以生成格雷码 \(balabala\) 数据范围: \(long\ long\) 内 求 \(n\) 位格雷码第 \(k\) 项?第一位看一下在前半还是后半,第二位递归下去……复杂度 \(O(n)\) ,没什么大问题,直接开打。 \(8:45\) 打完了,测小样例、大样例,手造两个小数据,测一下极限数据……等等,极限数据是 \(63\) 还是 \(64\) 位?看一下数据范围, \(n<=64\) ,可以等于……那就不能用 \(long\ long\) 了,赶紧改成 \(unsigned\ long\ long\) ,发现不知道怎么读入……改成 \(cin\) 。测一下最大数据,能过,好的下一道。 \(8:50\) 第二题好像蛮套路的,树上做合法括号序列……考虑到括号序列的合法判断,只需要把 \((\) 当成 \(1\) , \()\) 当成 \(-1\) ,求前缀和,满足没有任何一个位置小于 \(0\) ,并且最后的位置等于 \(0\) 就一定合法。那么考虑在树上 \(Dfs\) 维护前缀和,统计方案