P10644
sol。
令 ,。如果能构造出合法的 ,就 arc135d 的方法。
分类讨论是否存在一个不全相同的行、一个不全相同的列。
arc189e
sol。
特判 。
归纳证明 不合法。对于 时 合法。将 分为 个集合 。集合内权值为 ,集合间权值为 的权值。可能不合法的方案要求其中一个集合至少大于等于为另外两个集合之和。令 。
CF1097E
记 为最大的 使得 。可以构造 使得 。
在 内划分任意一个排列。设最长上升子序列长为 。如果 ,取出,。否则由 Dilworth,存在 个下降子序列可以拼出原序列,贪心构造。
P9731
对于 ,一定有解。连边 ,把奇数度的点连向一个虚点,跑欧拉回路。可以保证原来奇数度的点入度出度差为 。
对于更大的 ,当作 对 个的处理,使得左右两边差值 。分治左右两边。
P11066
分为要向左的点和要向右的点。从后往前做,要向左的点先向右一步,要向右的点直接去要去的位置。再从前往后,要向左的点去要去的位置。问题是,对于只要向右走一步的点,会在这时挡到路。
先做一步调整。调整会把空位从最右移到最左,所以上面部分反过来。每次从后往前考虑 和 ,如果 为奇数就不考虑最后一个点。如果 和 在右移一格后需要调整,就交换 i+2,i+2,0,i+1
,否则直接 i+2,i+1
,把空位向左移。
理论上 ,常数较小。