07 2019 档案
摘要:状压DP f[i][j][k]表示第i行,状态为j,用了k个国王 s[]是当前状态,king[]是这一行用了几个国王 用十进制数的二进制表示这一行的状态 其余见注释 code
阅读全文
摘要:一个需要考虑比较多状态的dp 通过象棋规则可知,一列最多有两个炮 因为如果有三个炮他们就可以互相伤害了 设f[i][j][k]为前i行,有j列有一个棋子,有k列有两个棋子 容斥一下可得没有棋子的列数为m-j-k 我们枚举方棋子的状态 <1>只放一个棋子 (1) 把这个棋子放在一列没有棋子的列上 当这
阅读全文
摘要:这题其实并不是在考DP吧。。。 转移方程显然 有钉子的情况下落到左右两边概率相等,均为当前概率的一半 f[i+1][j]+=f[i][j]/2 f[i+1][j+1]+=f[i][j]/2 没钉子的话就直接掉在正下方的钉子上,该点的概率加上当前的 f[i+2][j+1]+=f[i][j] 然而难点不
阅读全文
摘要:点分治是一种基于分治的算法 整体思想为不断删根把一棵较大的树拆成n个小树再分别求解再合并 关于此题 我们先随意指定一个根,树上路径就分成了过根的和不过根在一个子树里的 这样经过根的路径即为dis[u]+dis[v],dis[i]是i到根的路径长度 不经过根的就再找这棵子树的根如此递归 显然分治 把一
阅读全文
摘要:用差分数组(b[i])存每天教室的使用情况 所以当对区间操作时,其实可以转化成对b数组操作: 改变b[i]就相当于改变i之后的每一个值,并通过重新减去改变的量,达到操作区间的目的。 从第一份订单开始枚举,直到无法满足或者全枚举完结束。 另通过比大小来判断负数不容易出错
阅读全文
摘要:01分数规划+背包 t[i]读入时*1000,不用小数而满足题目要求 由于W比较小而w[i]很大,枚举W 当w[i]>W 时必满足,所以直接使w[i]>W的贡献算在f[W]上 求Σt[i]/Σw[i]的最大值,ans=Σt[i]/Σw[i],即Σ(t[i]-w[i]*ans) 二分ans然后正常01
阅读全文
摘要:要求≥3,所以只需找3个 当这一位是a时,判断以a为中心的前后两段是否回文 若是,说明所有和a等差的项都出现过 如果不是,说明一项在前一项在后 因为是1到N的排列,所以一定存在这样的项 bitset代替线段树维护hash值
阅读全文
摘要:AC自动机上DP f[i][j]表示节点j,串长为i 当一个串的尾节点被标红或其fail指针指向的被标红,都是可读的 用总的减去不可读的即为答案
阅读全文

浙公网安备 33010602011771号