02 2025 档案
摘要:比较巧的题。 先考虑只有 \(1\) 操作时怎么做,显然答案为满足 \(1\le i<n\land A_i>A_{i+1}\) 的 \(i\) 的个数,即每次选一段尽量长的不降段进行操作。 接下来加上 \(2\) 操作,考虑对每个 \(i\) 将 \(A_i\) 分为 \(x_i\) 和 \(A_i
阅读全文
摘要:首先有个显然的费用流做法,可以直接把任意两异色点连边然后求匹配,但是边数太多无法通过。 考虑一个经典的转化:对于两点 \((x_1,y_1),(x_2,y_2)\) 之间的曼哈顿距离有 \(|x_1-x_2|+|y_1-y_2|=\max\{x_1+y_1-x_2-y_2,-x_1+y_1+x_2-
阅读全文
摘要:考虑确定每条边有多少条正向的和反向的,然后直接 BEST 定理求。 考虑存在欧拉回路的条件,每个点的入边个数需要和出边个数相等,那么只需要枚举 \((1,2)\) 的个数便可以确定其它每种边的条数,直接做即可。 参考代码: #include<bits/stdc++.h> #define ll lon
阅读全文
摘要:记 \(a_i\) 表示 \(d\) 天后第 \(i\) 个人拥有的宝石数,则确定每天被选择的人的方案数为 \(\frac{d!}{\prod_{i=1}^n (a_i-1)!}\),确定宝石分裂顺序的方案数为 \(\prod_{i=1}^n(a_i-1)!\),可以发现得到任意一种 \(a\) 序
阅读全文