10.23 模拟赛

炼石计划 10 月 05 日 NOIP 模拟赛 #9【补题】 - 比赛 - 梦熊联盟

复盘

既然以前做过,复盘貌似不重要了吧?

T2 很快写完了。

T1 想到堆就做完了。

T3 忘了咋做了,好像是个 DP 但剩下忘了。于是写了暴力分跑路了。

T4 正解显然不可能会的。打满了暴力。

最后 T1 数组开小挂了 50。其余没有挂分。

总结

  • 好的:
  • 不足:
    • 奇葩挂分。
    • 做过的题不会做。

知识点

T1:贪心,堆。

T2:图论。

T3:DP,快速排序。

T4:并查集,组合计数。

A. 序列加法机

求出 ci=|aibi|。如果 c 中不为 0 的元素数 >m 则无解。否则可以证明一定有解。

于是变成了对 cCarrots for Rabbits

考虑贪心。

首先令 f(i,j) 表示将一个元素 i 分成 j 部分的最小代价。显然能平均分就平均分。

初始时,显然每个元素都只被分成了一部分。用一个堆,维护每个元素从 j 部分变成 j+1 部分后,操作代价会减少多少。每次挑变化最大的变化。这样跌倒 m 次即可。

B. 字符串构造机

T2 - 洛谷专栏

C. 快速排序机

显然 a 合法等价于 [l,m1],[m+1,r] 都合法。所以可以 DP。

最暴力的,设 f(l,r,h) 表示若要对 a=(l,l+1,,r) 进行排序,且递归深度至多为 h 的合法 a 的方案数。

考虑转移。枚举 ar=k,即快速排序时选择的基准,则:

f(l,r,h)=k=lr(rlkl)f(l,k1,h1)f(k+1,r,h1)

即,除 k 外总共 rl 个位置,这些位置中有 kl 个位置 <k,这些位置最终将按照原来的顺序摆放到 k 之前,剩下的位置也会按照原来的顺序放到 k 之后,所以会有个组合系数。

注意到 f(l,r,h)=f(1,rl+1,h)。于是就能做到 O(n3)

f(i,j)=k=1i(i1k1)f(k1,j1)f(ik,j1)

D. 格子衫染色机

显然对 k 分类讨论,

k=0 显然答案一定在 0,1,2 内。极易。

k=1

注意到 xi,j=x1,1xi,1x1,j[imod2=0jmod2=0]

不妨枚举 x1,1。那么 xi,1x1,j 可以表示成一个常数(01)。

因此建边。如果存在一个全为 1 的奇环则无解。否则答案为 2 的连通块数量次幂乘 2 的孤立点数量次幂。这里连通块只看 0 的边。

然后 k=2 不会了。

posted @   2huk  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示