2026.1.7 NOI 模拟赛 题解

比赛

订正

T1 P130267 [省选二十连测第十一套 ] --T1--A

题意

给定一棵 \(n\) 点的树,树上有 \(m\) 个物品,令一个点变为关键点的代价为 \(C\),令物品移动一条边的代价为边权,求令所有物体都移到某个关键点的最小代价,\(m,n\le 3000,1\le w\le 10^9\)

分析

等价于把树划分为若干连通块,每个连通块中选择一个关键点

\(f_{u,i}\) 表示子树 \(u\) 中根所在连通块还没有选择关键点,其大小为 \(i\),该情况下的最小代价

\(g_{u,i}\) 表示子树 \(u\) 中根所在连通块已经选择了关键点,且钦定当前连通块在子树 \(u\) 外还有 \(i\) 点的最小代价

由于最优情况下选择的关键点一定是重心,因此 \(i\) 不超过子树 \(u\) 内物品总数

时间复杂度 \(O((n+m)m)\)

代码

T2 P130268 [省选二十连测第十一套 ] --T2--B \(\quad\) QOJ #6451. Maximum Color Clique

题意

给定一张无向完全图,\(n\le 300\),边权在 \([1,300]\) 中,保证任意简单环都存在两条邻边边权相同,对于所有非空导出子图,求出最大同色团之和

分析

显然 \(n>1\) 时,存在一点使其所有边权值相同,否则从一点出发每次选择与上一条边不同的可以得到不满足要求的环

找到这一点删去,并记录其边的权值,显然剩余部分也满足要求,不断处理得到一个长度为 \(n-1\) 的权值序列

则对于一个导出子图,将其点集按权值序列的顺序排列,去掉最后一个点,统计每种权值在剩余部分中的出现次数,最大出现次数加一即为当前导出子图的答案

考虑如何统计答案

枚举 \(i\) 表示最后一个点,统计每种权值在 \([1,i)\) 的出现次数,得到次数的序列 \(s_{1\sim V}\),枚举最大出现次数 \(C\),则最大出现次数不超过 \(C\) 的方案数 \(F_C=\sum_i \sum_{x\le C}\binom{s_i}x\),最大出现次数恰好等于 \(C\) 的方案数 \(G_C=F_C-F_{C-1}\),将 \(\sum_C G_{C-1}\times C\) 计入答案

时间复杂度 \(O(n^3)\)

MX

QOJ

T3 P130269 [省选二十连测第十一套 ] --T3--C \(\quad\) P11086 [ROI 2019] 机器人高尔夫 (Day 2)

题意

给定一个 \(n\times m\) 的平面,对于一个起点,双方轮流操作,每次可以从 \((x,y)\) 走到 \((x,y+1)\)\((x+1,y)\),其中 \(k\) 个位置为关键点,它们的坐标互不相同,一但到达关键点则结束,最终分数为关键点的权值,若超出边界则分数是 \(0\),先手需要最小化最终权值,后手最大化最终权值,对于所有 \(1\le i\le n,1\le j\le m\) 求出以 \((i,j)\) 为起点的最终权值之和,\(n,m\le10^9,k\le 10^5\)

分析

先对网格黑白染色,显然两种颜色独立,因此分别考虑

对于一种颜色,令 \(dp_{x,y}\) 表示以 \((x,y)\) 为起点的答案(不要求 \((x,y)\) 是当前颜色)

\((x,y)\) 是当前颜色,则 \(dp_{x,y}=\min(dp_{x+1,y},dp_{x,y+1})\),否则 \(dp_{x,y}=\max(dp_{x+1,y},dp_{x,y+1})\)

特别地,若 \((x,y)\) 是关键点则 \(dp_{x,y}\) 是其权值,若 \((x,y)\) 超出边界则 \(dp_{x,y}=0\)

存在 \(c=O(1)\) 使得当 \(\forall 0\le d_x,d_y\le c\)\((x+d_x,y+d_y)\) 不是关键点时,\(dp_{x,y}=dp_{x+1,y+1}\)

对于每个关键点将周围 \(O(1)\) 的范围标记,被标记点数量为 \(O(k)\) 的,将它们按坐标从大到小排序(按 \(x+y\) 即可),依次考虑,令 \(f_{d}\) 表示上一个 \(x-y=d\)\(dp_{x,y}\)\(g_d\) 表示其 \(x\),若不存在则为 \(0\),容易做到 \(O(k\log k)\)

MX

luogu

比赛结果

\(100+30+20\)\(\text{rk}1\)

posted @ 2026-01-09 13:22  Hstry  阅读(11)  评论(0)    收藏  举报