04 2019 档案
摘要:传送门 分析一下题目,考虑构建费用流模型(为什么会想到费用流啊!) 把每个点拆成两个 u,v 从 v 到 T 连一条流量为 1,费用为 0 的边(这条边满流说明此点走完了) 从 S 向每个点 v 连一条流量为 1,费用为能力爆发到此星球的时间(从任何一点跳跃其实就相当
阅读全文
摘要:传送门 看一眼,这不是修车原题吗? 把厨师拆成 n∗m 个点,第 k 种菜连向第 i 个厨师的第 j 个点表示第 i 个厨师倒数做的第 j 个菜是 k 可以发现厨师 i 做的倒数第 j 个菜的贡献是 j∗time[i][j] (time[i][j] 表示厨
阅读全文
摘要:传送门 见计数想容斥 考虑先求出 F[i] 表示每种长度的不下降子序列的方案数,但是可能有多算,因为这样有算 从长度 i+1 的不下降子序列变成长度为 i 的不下降子序列的情况 而根据题目的要求一旦序列不下降就要停止操作,但是可以发现 F[i] 只要扣掉 F[i+1]∗(i+1)
阅读全文
摘要:传送门 见计数想容斥 显然每个人交换后可以变成任意的排列 所以就是求对于所有排列使得每个位置的值都和一开始的值不同 感觉同一个值算同一个数不太好搞,考虑把所有数都看成不同的,最后答案再除 ∏ni=1fac[cnt[i]](其中 cnt[i] 表示值为 i 的数的个数
阅读全文
摘要:传送门 见计数想容斥 发现所有同学至少有一个特产的限制不好搞 考虑设 F[i] 表示 至少 有 i 个同学没有特产的方案数 那么根据容斥原理答案就是 F[0]−F[1]+F[2]−F[3]...+(−1)nF[n] 考虑怎么求 F[i],首先要强制任意 i 个同学没特产,那么有
阅读全文
摘要:传送门 见计数想容斥 首先题目可以简单转化一下, 求 糖果比药片能量大的组数比药片比糖果能量大的组数多 k 组 的方案数 因为所有能量各不相同,所以就相当于求 糖果比药片能量大的组数为 (n+k)/2 组的方案数,如果 (n+k) 为奇数则无解 发现这个 '恰好' 很不好算,考虑先算出
阅读全文
摘要:传送门 看计数想容斥 考虑强制选 K 个数作为子集,剩下数组成的集合随便选几个子集使得它们交集为空 显然 n 个数中强制选 K 个数的方案数是 CKn 剩下的数构成的子集总数有 2n−K 个,那么如果没有交集为空的限制方案数就是 22n−K−1(
阅读全文
摘要:传送门 每种硬币有数量限制,感觉很不好算 先考虑一下如果没用限制时可以怎么做 显然直接背包一下就可以了 设 f[i][j] 表示前 i 种硬币选了一些,总价值为 j 的方案数,转移显然,并且可以滚动数组优化 但是现在有限制,考虑容斥,设 f[j] 表示不考虑限制总价值为 j 的方
阅读全文
摘要:传送门 应该是很显然的费用流模型吧... S 向所有学校连边,流量为 1,费用为 0(表示每个学校要选一个编号) 学校向范围内的数字连边,流量为 1,费用为 c|m−m′|(表示学校选择编号的花费) 注意学校向原来的数字连边,流量 1,费用 0(表示学校可以不改变编号)
阅读全文
摘要:传送门 答案等于总工作价值减去最小失去的价值 考虑构建最小割模型 在 S割 的点表示选,在 T割 的点表示不选 对于机器(编号从 n+1 到 n+m) n+i,连边 (n+i,T,cost) 表示选的代价 即如果此边满流表示此机器在 S割,表示选了,代价就是 cost
阅读全文
摘要:以前只知道最小割就是最大流...网络流背个模板,没了 根本没有深入理解,最近写了一些题才知道自己很 naive 废话不多说,开始正题(假设大家都会网络流的代码,并且知道网络流在做什么) 首先最小割就是最大流(废话) 一条图的最小割中,一定有一些边,它们是满流的(如果不满流就不是最大流了) 不妨把
阅读全文
摘要:传送门 考虑一开始把所有点都选了,再放弃一些点使得选择合法 考虑求出最小的放弃掉的价值 看到棋盘先黑白染色冷静一下 从 S 向所有黑点连一条流量为点权的边,如果满流表示我放弃这个点的价值 从所有白点向所有 T 连边,如果满流说明我放弃这个点的价值 从所有黑点 x 向它四个方向的四个白点
阅读全文
摘要:传送门 求最小平均等待时间就相当于求最小总等待时间 考虑对于一个技术人员的修车顺序,k1,k2,k3,...,kp 这 p 辆车的车主的等待时间分别为 $t_{k_1},t_{k_1}+t_{k_2},t_{k_1}+t_{k_2}+t_{k_3},...,t_{k_1}+t_{k_
阅读全文
摘要:传送门 求无法逃离的蜥蜴总数的最小值就是求最多逃离的蜥蜴总数 所以显然考虑最大流,一个流量的路径就相当于一只蜥蜴逃离的路径 发现每个位置有一个最大经过次数,所以把每个位置拆成两个点x,y,x 到 y 连流量为最大经过次数的边 从源点向每个蜥蜴的初始位置的 x 连一条流量为 1 的
阅读全文
摘要:传送门 01规划 01规划优质讲解:传送门 考虑先将每一科按 t/p 从小到大排序,枚举每一个 D(删除的考试数量) 显然一开始的成绩是 ∑ni=d+1t[i]∑ni=d+1p[i],设它为 st[D]/sp[D] 然后根据$
阅读全文
摘要:洛谷传送门 FJOI 日常原题 2333(似乎还不如 SDOI2012 任务安排 2333) 显然考虑 dp,这个是经典的把未来的代价先计算的 dp,然后才是斜率优化 一开始想状态时一直有一个时间维,然后就没法优化,考虑如何消掉这个时间维 可以发现,时间只和当前处理到的任务编号,和之
阅读全文
摘要:传送门 首先有一个显然的贪心,每次操作都要做到底,为了最优不会出现只卖一部分或者只买一部分的操作 所以设 f[i] 表示前 i 天得到的最大价值,那么对于每一个 i,枚举所有 j<i,意思就是第 j 天全部买入,第 i 天全部卖出 显然如果知道 f[j],那么就知道第 $
阅读全文
摘要:传送门 显然考虑 dp,设 f[i] 表示前 i 个牧场都被控制的最小代价 那么枚举所有 j<i ,f[i]=f[j]+val[i][j]+A[i] val[i][j] 表示控制站从 i 一直控制到 j+1 需要的代价 考虑怎么算这个东西,设 $S[i]=\sum _
阅读全文
摘要:传送门 首先容易证明,得分和切的顺序没有关系 所以直接默认先切左边再切右边就好了 然后显然可以 dp 一开始想的是设 f[i][j] 表示切了 i 次,此次把 j 和 j+1 分开,得到的最大价值 那么显然枚举上一次切的位置 k ,那么 $f[i][j]=f[i-1][k]+
阅读全文
摘要:传送门 语文题,要读懂题意... 题目中的双亲节点就是父节点的意思 部门的意思是有边直接相连的子图 求的是 最大的部门节点子集 ,意思是对于所有部门,在所有部门选出一些子集,使得子集并起来后的大小最大,并且并起来的子集中的节点满足对于任意祖先后代节点,祖先的节点值小于等于后代的节点值 题面好像没有保
阅读全文
摘要:传送门 考虑一个子树里是怎么划分的,维护划分出来的每个集合的最大值,这个可以用一个 multiset 维护 设 S[x] 表示节点 x 的子树中,最优划分 划分出来的每个块的节点最大值 首先叶子节点的集合显然只有它本身 然后考虑子树之间的合并,设两个子树根节点为 x,y,因为两个子树
阅读全文
摘要:传送门 超级钢琴+可持久化Trie 同样设三元组 (o,l,r) 表示左端点为 o,右端点 ∈[l,r] 的区间的最大异或值,这个东西可以用可持久化 Trie 来维护 一开始把所有 (i,i,n) 扔到堆里,然后每次取出计算贡献,设取得最大异或值的位置为 t,然后再
阅读全文
摘要:传送门 考虑维护前缀和 sum[i] 那么对于每一个位置 i ,左端点为 i 右端点在 [i+L−1,i+R−1] 区间的区间最大值容易维护 维护三元组 (o,l,r) ,表示左端点为 o ,右端点 ∈[l,r] 的区间最大值,然后把它扔到一个堆里,每次弹出最大值计
阅读全文
摘要:传送门 考虑把总区间长度减去最多能减少的区间长度 把所有区间离散化,对每一小段计算贡献 分类讨论一波,对于边界 i,i+1 ,设它们之间距离 d,i 属于 x 考察队的边界,i+1 属于 y 考察队的边界: i 为左边界,i+1 为左边界,显然如果给 x 钥匙就可
阅读全文
摘要:传送门 区间第 K 小,直接树套树 外层树状数组维护区间,内层权值线段树维护排名 和正常的权值线段树类似,查询第 K 小时也是在线段树上二分,但是此时不是两颗线段树作差,而是树状数组上的 2logn 个线段树作差 跳的话就 2logn 个节点一起跳就好了 要记得离散化
阅读全文
摘要:传送门 把时间看成数,菜肴看成位置 考虑一个位置填什么数很麻烦 考虑一个数放在什么位置 一开始我想的是,对于一个限制 (a,b) ,从 a 往 b 连一条边,然后如果有解则所有的限制构成了一个 DAG 考虑当前最小的数给谁,显然是当前没有入度的且编号最小的点 所以可以直接按拓扑序把数
阅读全文
摘要:传送门 显然 LCT 动态维护最小生成树 询问就是问树上两点的路径中权值最大的边 为了维护边权,我们要把边也看成点,为了方便,边在 LCT 中的编号为 n+1 到 n+m 因为正做不好维护删边,所以离线倒过来,变成加边 在反过来做的时候,为了维护最小生成树要知道哪些边被删除了 用 $
阅读全文
摘要:传送门 动态维护森林 显然考虑 LCT 但是发现询问求的是子树大小,比较不好搞 维护 sum[x] 表示节点 x 的子树大小,si[x] 表示 x 的子树中虚儿子的子树大小和 那么 pushup 可以这样写: 考虑什么时候 si 会变 首先对于 $rotate,splay
阅读全文
摘要:传送门 显然不能直接考虑图长什么样 考虑如何构造一个图,让一个 B 序列尽可能合法 发现对于一些点,如果能让它们先弱联通,(一个节点指向下一个节点,形成一条链) 那么对于最后一个节点,它想缩几个联通块都行,可以证明,这样可以包括所有其他情况形成的 B 序列 感性理解因为这样可以消耗最少的边来
阅读全文
摘要:传送门 显然 LCT 维护,除了翻转标记,还要维护加法,乘法和子树大小 注意模数看起来很小,但是乘的时候还是会爆 int ,所以要用 unsigned int 代码中的标记为延时标记,就是当前节点的标记说明当前节点还没更新,要等到下传标记时才更新,个人认为会好写一些(不用考虑先乘还是先
阅读全文
摘要:传送门 注意操作 1 是在区间的每个位置加入一个数,不是加上一个值 相当于每个位置维护的是一个集合 显然树套树 一开始想的是区间线段树套权值线段树 发现这样询问区间第 K 大时就要先二分答案再用 O(log2n) 时间查询 那么单次询问的复杂度就有 O(log3n) ,显然不
阅读全文
摘要:传送门 显然题目给的图构成一个基环树森林 对于每个基环树单独考虑,显然每个都走直径是最优的 考虑如何求出基环树的直径 把直径分为两种情况考虑,首先可以找出环 因为直径可能不在环边上,所以对每个环上节点的子树进行一遍 dfs,求出每个节点子树的直径 维护 dis[x] 表示节点 x 到叶子
阅读全文