CF1045 总结
A: 水题没价值
B: 先设 $\gcd_{i=1}^n a_i = x$,不难发现 $\gcd(x,k) = 1$。所以枚举出 k,然后解个同余方程即可。
C: 水题没价值
D: 首先,每次操作最多可以将直径增加 1。设树的直径长 $l$。所以操作次数一定大于等于 $n - 1 - l$。现在,我们要尝试构造一组方案,使得每次操作直径...
A: 水题没价值
B: 先设 $\gcd_{i=1}^n a_i = x$,不难发现 $\gcd(x,k) = 1$。所以枚举出 k,然后解个同余方程即可。
C: 水题没价值
D: 首先,每次操作最多可以将直径增加 1。设树的直径长 $l$。所以操作次数一定大于等于 $n - 1 - l$。现在,我们要尝试构造一组方案,使得每次操作直径...
先二分答案,构建一副新的图。将原图中每个边拆成两条有向边,新的图只保留边权小于答案的边。则问题转化为判断一幅图是否存在欧拉回路,其中边有的有向,有的无向。
根据欧拉回路的性质,一幅有向图有欧拉回路当且仅当每个点度数为偶数。所以可以用网络流来判断是否有欧拉回路。建立超级源,汇点 $s,t$。对于每个边,建立一个新点。$s$ 往新点流容量为 1 的边,代表这条边产生大小为 ...
对每一天,建立一个点 $i$。点 $i$ 往 $i + 1$ 流容量为 $-a_{i+1}$ ,费用为 0 的边,表示下一天至少需要这么多人。 对于每一种志愿者,将 $t_i + 1$ 与 $s_i$ 连容量为 $+\infty$,费用 $c_i$ 的边。 最后从第一天对应的点往最后一天对应的点跑最小费用最大流即可。
对每一天,建立两个点 $d_i, e_i$。分别表示早上和晚上。建立 $s$ 为超级源点,$t$ 为超级汇点。
杜教筛是一种快速求出积性函数前缀和的算法。
建立超级源点 $s$ 和超级汇点 $t$。对于仓库 $i$,首先将 $i$ 与相邻的两个仓库连容量为 $+\infty$,价值为 $1$ 的边。如果 $a_i - \sum_{i=1}^{n}\frac{a_i}{n} > 0$,则 $i$ 需要移走多余的货物。所以源点往 $i$ 连容量为 $a_i - \sum_{i=1}^{n}\frac{a_i}{n}$,价值为 $0$ 的...
建立超级源点 $s$ 和超级汇点 $t$。对每个顾客和猪圈建一个点。对于顾客 $i$,将 $i$ 与汇点连容量为 $b_i$ 的边。对于🐖圈 $i$,将源点与 $i$ 连容量为 $p_i$ 的边。对于每个 $k_i$,考虑其中的每个猪圈。如果猪圈没有其他顾客来过,则该猪圈往顾客连容量为 $+\infty$ 的边。否则上一次来过的顾客往现在的顾客连容量为 $+\infty$ 的边。最后跑...