02 2019 档案
摘要:学习博客:https://rpdreamer.blog.luogu.org/bei-bao-wen-ti f[mo+k*w[i]]=q[head]+k*c[i]; 这一步没有搞懂啊,说好的最后应该加上 a*c[i] 的呢 洛谷P1776 宝物筛选
阅读全文
摘要:我终于会这个dp了。。。 0表示当前行向下覆盖,1表示被当前行横着覆盖或者被上一行覆盖 状压,判断合法状态 没了
阅读全文
摘要:dp[i][j][k]前i个物品,选了j件,重量为k的最大价值 TLE 考虑消掉一维状态 由于第一个物品重量为0,所以可以先选出n+m个第一个物品,然后将其他物品的价值都减去第一个物品的价值 相当于将后面的物品分隔成了一个重量为0,价值为第一个物品的价值,和一个重量为其本身,价值为剩余价值的物品 这
阅读全文
摘要:题目链接: https://www.codechef.com/problems/LEMOVIE 对于这种类似排列,并且有大小关系的贡献,一般要按从大到小或从小到大插入进行讨论 一组数有贡献当且仅当至少一个数被插到了最前面,那么就分情况进行讨论即可 就是插板法,把y个数插到x个数当中,把x个数之间的空
阅读全文
摘要:题目链接: https://www.codechef.com/problems/ANUCBC 按模数进行背包 取模不要直接取,分开写,不然会T
阅读全文
摘要:有一个长度为n的排列a,其中有一些位置被替换成了−1。你需要尝试恢 复这个排列,将−1替换回数字。 求有多少种可行的替换方法,满足得到的是一个排列,且不存在ai = i的 位置。n ≤ 2000。 对于一个排列,可以用一个n*n的方阵来表示,第i行第j列如果被标记,则代表数字 i填在了第j个位置(a
阅读全文
摘要:题面: https://s3.amazonaws.com/codechef_shared/download/translated/LTIME10/mandarin/SHGAME.pdf 把n-1,m-1分别拆分成两段,于是相当于四堆石子的nim游戏 枚举把n分成x,n-x,把m分成y,m-y 开个桶
阅读全文
摘要:dp 首先暴力的dp式子: f[i]=min{f[j]+num(j+1,i)} 这样是n^2的 考虑优化: 代价是一段区间不同颜色的数量, 那么如果区间的颜色数量是相同的,更新长度更长的区间一定更优 那么可以用双向链表优化一下,当一个数在之前出现过的时候,就将之前出现过的位置删除掉 其实相当于离散化
阅读全文
摘要:学习博客:https://www.cnblogs.com/ECJTUACM-873284962/p/7643445.html 斯坦纳树: 给定k个点,要求将k个点联通,且权值和最小 f[i][s]表示以i为根,当前联通集合为s的最小代价 转移方程有两层: 第一层,通过连通状态的子集进行转移 f[i]
阅读全文
摘要:先留个坑,输出方案的地方还得再想想
阅读全文
摘要:考虑这样一个问题: 给定n个数,每次询问一个数q,可不可以由这n个数组成 设n个数中最小的数为a,对于0-a-1中的每个点i,向(i+xj)%a连一条权值为xj的边 跑一遍最短路,则距离数组的意义是在模a意义下,在所有可以组成的模a剩余i的数中,最小的数是多少 如果可以到达点i,则i+k*a都可以到
阅读全文
摘要:对于组合数的奇偶性: 根据卢卡斯定理,相当于是在p进制下的分解,对于每一C(n,m),如果n,m不同,那组合数就是偶数 所以组合数C(n,m)为奇数当且仅当 n&m==m 然后就是dp了 设f[i]为以i结尾的方案数 枚举i的子集j,如果j的位置在i的后面且i&j==j,则更新 答案就是所有f[a[
阅读全文
摘要:这道题真的难写啊,细节超级多 一看就不能直接背包 考虑到所有的重量都是a*2^b的形式 所以可以按照数位进行分层dp 设f[i][j]表示容量j*2^i时最大的价值(此时的状态) 在每层dp内,只转移b为i的物品 f[i][j]=max(f[i][j],f[i][j-a]+val) 每层处理完之后,
阅读全文
摘要:这道题有结论啊啊啊 但是不会证啊qaq 最小就是尽量让少的点能够相互到达,每层的边都与上一层的边反向 最大要找到树的重心(这都能写错),然后对于每个子树,尽量让根连出的子树大小等于连到根的子树大小 也就是尽量取 n/2 转化成了0/1背包问题 套路: 对于 ∑a ≤ n observation: 不
阅读全文
摘要:dp[i][j]表示以i为根,且i在原图上对应的点为点j的方案数 可能多个点会对应到原图中的一个点,所以要容斥处理一下 枚举都对应到了哪些点 dp转移方程为 dp[u][j]=π(v∈son[i])∑(k∈adj[j])dp[v][k] 子树间方案数是乘起来啊qaq 然后就是容斥了 bin数组是2^
阅读全文
摘要:extend数组:A串的每个后缀与B串的LCP next数组:B串的每个后缀与B串的LCP 题目:hihocoder 扩展kmp 主题代码:
阅读全文
摘要:WC陈俊锟课件 学会了可删除堆 例题1 : 求图中两点间路径上最大(最小)权值 无修改设圆点权值为本身,方点权值为点双中的最大(小)权值查询链上最大值并查集?? 有修改 设圆点权值为本身,方点权值为点双中非根节点的最大(小)权值 修改时修改父方点的权值(堆维护) 注意: 查询时如果LCA是方点,还要
阅读全文
摘要:割点 在无向连通图G上进行如下定义: • 割点:若删掉某点P后,G分裂为两个或两个以上的子图,则称P为G的割点。 • 割点集合:在无向连通图G中,如果有一个顶点集合,删除这个顶点集合以及与该点集中的顶点相关联的边以后,原图分成多于一个连通块,则称这个点集为G的割点集合。• 点连通度:最小割点集合的大
阅读全文
摘要:割点 在无向连通图G上进行如下定义: • 割点:若删掉某点P后,G分裂为两个或两个以上的子图,则称P为G的割点。 • 割点集合:在无向连通图G中,如果有一个顶点集合,删除这个顶点集合以及与该点集中的顶点相关联的边以后,原图分成多于一个连通块,则称这个点集为G的割点集合。• 点连通度:最小割点集合的大
阅读全文
摘要:离线版 首先将询问和加边一起排个序 对每个节点建一棵主席树,连边时主席树合并即可
阅读全文
摘要:学习博客: https://www.cnblogs.com/xzyxzy/p/10033130.html https://www.cnblogs.com/cjyyb/p/10282258.html https://blog.csdn.net/clover_hxy/article/details/53
阅读全文
摘要:学习: http://hihocoder.com/problemset/problem/1441 后缀自动机可以用来干嘛? 在另一个字符串中搜索一个字符串的所有出现位置。 计算给定的字符串中有多少个不同的子串。
阅读全文
摘要:后缀数组用来处理一类字符串问题 学习博客 https://www.cnblogs.com/victorique/p/8480093.html#autoid-1-2-1 求LCP RMQ,nlogn 预处理,O(1)查询 或者线段树单次查询 O(logn) 例题1 :hihocoder #1403 后
阅读全文
摘要:gauss求解行列式时 如果模数不是质数,那么就要用到辗转相除法来消元 (为什么使用第 j 行减第 i 行啊qaq)
阅读全文
摘要:min-max容斥: 给定集合S,设max{S}为S中的最大值,min{S}为集合S中的最小值。那么我们可以得到:max{S}=∑T⊆S(−1)|T|+1min{T} 证明: 咕咕咕 对于期望来说,min-max容斥同样适用 E(max{x1,x2...xn})=∑S(−1)|S|+1E(min i
阅读全文
摘要:一 同余 同余不满足同除性 所以在模P意义下的除法要用到乘法逆元(费马小定理,exgcd) 费马小定理:如果 a,p 互质,那么 a^(p-1) ≡ 1 (mod p) 例: 求 m^n%k (m,n,k均为长整型范围内自然数) 将 n 二进制分解,放在数组 r 中,r[i]=1 表示有 m^i 这
阅读全文

浙公网安备 33010602011771号