[CodeForces1000]A. Codehorses T-shirts
一道简单但是题面很难懂的水题,说了半天就是求不同型号的个数而不是需要修改几个字母,用 unordered_map 维护即可(不需要求前驱后继就用 unordered_map 会更快)。
一道简单但是题面很难懂的水题,说了半天就是求不同型号的个数而不是需要修改几个字母,用 unordered_map 维护即可(不需要求前驱后继就用 unordered_map 会更快)。
一道贪心的简单题,插入无非就是两种情况:
注意:
g1 和 g2 的含义,g1 是指不落单(最后两次操作刚好完成一次开关)的后缀和,而 g2 则指的是会落单的后缀和i+1 和 i+2 的选择,应该在纸上画图而不是凭空乱想n 的奇偶性不知道,所以 ans 的初始值为末尾两个数的最大值区间前缀和的经典问题,离散化后求前缀和(值即为覆盖的条数),用离散化之前的值直接计算即可。
注意:
sum 数组和 b 数组要开 n 的两倍L 和 R+1 进行离散化就可以了,但记住取 lower_bound 的时候也要取 R+1 的排名,所以算前缀和的时候是 --sum[y] 而不是 --sum[y+1]ans 的时候只能算一边!DP 经典题目,枚举第一个正整数就得到了区间长度,再暴力枚举区间最后一个值,
在 DP 的时候,可以从 i 优化到 j 而不需要倒着循环来 DP, f[n+1] 就是答案。
注意:f[i] 的初值为 1!
无向图求割边的模板题,缩点后建立新图 DP 一下就可以了。
对于每条割边,答案都可以为 dp[x]+1+dp[y],然后 dp[x]=dp[y]+1(合并节点 x 和 y)。
只需要注意 e1、e2 的区别和 h1、h2 的区别就行了。