摘要:
传送门 考虑先不管限制跑一遍 $Kruscal$ 如果白色边少了,说明白边相对权值比较大 如果白色边多了,说明白边相对权值比较小 发现如果给白边适当改变一点权值,就可以使得白边选择的数量改变 考虑二分一个偏移量 $mid$ 每次给所有白边加上 $mid$ 后跑一遍 $Kruscal$ 看看白边是多了 阅读全文
摘要:
传送门 分析一下题目,考虑构建费用流模型(为什么会想到费用流啊!) 把每个点拆成两个 $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)$ 阅读全文
摘要:
传送门 见计数想容斥 显然每个人交换后可以变成任意的排列 所以就是求对于所有排列使得每个位置的值都和一开始的值不同 感觉同一个值算同一个数不太好搞,考虑把所有数都看成不同的,最后答案再除 $\prod _{i=1}^{n}fac[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$ 个数的方案数是 $C_{n}^{K}$ 剩下的数构成的子集总数有 $2^{n-K}$ 个,那么如果没有交集为空的限制方案数就是 $2^{2^{n-K}}-1$( 阅读全文
摘要:
传送门 每种硬币有数量限制,感觉很不好算 先考虑一下如果没用限制时可以怎么做 显然直接背包一下就可以了 设 $f[i][j]$ 表示前 $i$ 种硬币选了一些,总价值为 $j$ 的方案数,转移显然,并且可以滚动数组优化 但是现在有限制,考虑容斥,设 $f[j]$ 表示不考虑限制总价值为 $j$ 的方 阅读全文
摘要:
传送门 应该是很显然的费用流模型吧... $S$ 向所有学校连边,流量为 $1$,费用为 $0$(表示每个学校要选一个编号) 学校向范围内的数字连边,流量为 $1$,费用为 $c|m-m'|$(表示学校选择编号的花费) 注意学校向原来的数字连边,流量 $1$,费用 $0$(表示学校可以不改变编号) 阅读全文