随笔分类 - DP
摘要:题意: 给出n个数的范围 li 和 ri。从每个范围中各选择出一个数,使得n个数的总和不大于m,且公共gcd值为1。求方案数。 题解: 从1到m,dp出每个数作为gcd值且总和不大于m的情况。 枚举当前的gcd值为d,那么最多有m/d份这样的值。 f[i][j]代表第i个范围使用d的数量不大于j时的
阅读全文
摘要:题意: 给出n行,109列的01矩阵,矩阵中的1是由m段连续的横向区间构成。问至少删除多少行,使得剩下的任意两行之间至少有同一列都为1;并输出删除方案。 题解: 假定某两行有同一列是1,那么称这两行相连。 即使有109列,但是成段的1也只有m段而已。 总体是dp的思想:从上往下扫每一行,当前行的答案
阅读全文
摘要:题意: 构造一个n*n的矩阵,使得Ai,i = 0,Ai,j = Aj,i,Ai,1+Ai,2+...+Ai,n = 2。求种类数。 题解: 把构造的矩阵当成邻接矩阵考虑。 那么所有点的度数都为2,且存在重边但不存在自环。这种情况的图为多个环,即每个点都在且仅在一个环里。 考虑每次加一个点来递推dp
阅读全文
摘要:题意: 给出一个长度为n的序列,序列中包含0。定义f(i)为把所有0变成i之后的Lis长度,求∑ni=1i⋅f(i)。 题解: 设不考虑0的Lis长度为L,那么对于每个f(i),值为L或L+1。 预处理f[j],g[j]代表在第j个数结束和从第j个数开始的Lis长度。 对于(1~n)的每个j,找到一
阅读全文
摘要:题意: 给一个环,环上有n+m个点。给n个点染成B,m个点染成W。求所有染色情况的每段长度乘积之和。 题解: 染成B的段数和染成W的段数是一样的(因为是环)。 第一段是可以移动的,例如BBWWW移动为BWWWB。 所以处理两个方程:b[i][j]代表把j分成i段的乘积和且第一段不能移动;f[i][j
阅读全文