摘要:
"食物链" 因为不知道要输入的 x ,是属于A,B,C,哪个位置上的,所以把空间开了三倍,每一种状态都保存一下 如果 x 与 y 同类,那么 为`true`。 如果 x 吃 y 那么, 为`true` 这个题卡的点在于, 会卡 ,所以应该用 进行读入 代码: 阅读全文
摘要:
next_permutation(begin,end) 当排列还存在下一种(以字典序排列)排法时,返回 ,否则返回 返回 的同时,把数组变成字典序中的下一种排法。 测试代码: 输出: 阅读全文
摘要:
并查集(防退化) 防退化的关键操作在于,记录每一个点的高度,合并的时候,将高度较小的点并到高度较大的点上去。 同时还有一个优化技巧就是路径压缩,它会改变树的高度,但是为了方便起见,也不修改 high 的值 合并操作: 阅读全文
摘要:
"D Minimax Problem" 首先先排除最暴力的$O(n^2)$做法。 当没有思路的时候,看看能不能够对答案进行二分,但是这个题是输出一对数组的下标,所以我们可以对最小值的最大值进行二分,看这个最大值存不存在。 对于每一行对 mid 的关系,我们可以对其进行状态压缩,大于等于的那一位就为1 阅读全文
摘要:
"C. Two Arrays" $dp[i][j]$表示有$j$个数每个数的范围为$1~i$时的非递减排列种数,因为 n 和 m 的数据范围也不大,用记忆化搜索很快可以得出每一个值。 再来看满足条件时的$(a,b)$,$a$为非递减序列,$b$为非递增序列,所以$b$的最后一个数大于等于$a$的最后 阅读全文
摘要:
取整 共包括三个函数,都在``头文件下 向下取整 向上取整 四舍五入 这些函数很显然只对小数有用,而当要运算两个整型数之间的除法时,要乘一个 1.0,以此来进行浮点数运算。 阅读全文