NOIP 模拟赛:2024-11-22

T1:

当需要对数组重标号时,想清楚哪里要用原编号,哪里要用新编号。

T2:

n个人参加THUSC,其中每个人都参加了算法场和工程场两场比赛,第i个人的得分分别是ai,bi

你希望给所有人进行排名,规则如下:

  • 先选定两个正实数x,y,计算每一个人的综合得分为xai+ybi
  • 按照综合得分从高到低排序,对于同分选手,你可以在他们之间任意排序

则共可能得到多少种不同的排名顺序?两种排名顺序不同,当且仅当存在一个人排名不同。 答案对 998244353 取模。
n1000

容易想到固定 y=1,得到 n 条直线 aix+bi。求出这些直线的交点们,去重按 x 排序。

枚举 x,统计在 x 处所有交点生效时,所有可能的排名顺序减去与之前交点重复的排名顺序个数。

所有可能的排名顺序很简单。把在 x 处相交的线用并查集合并,每个连通块的大小阶乘之积就是了。

那重复的排名个数呢?(赛时卡在这里了)

只有一种重复!为什么?首先,对于之前的 x,当前这些能互相交换线的顺序都是固定的,也就是只有一种排列方式。

T3:

给定长度为 n 的序列 A ,将 A 中元素重排得到了一个新的序列 B ,规则如下:

  • B 初始为空,同时维护一个初始为空的小根堆 T ,然后进行以下两类操作各 n 次:
    1. 将当前 A 的第一个元素删除并加入小根堆 T 中;
    2. 将小根堆 T 的堆顶删除并加入 B 的末尾,需要保证 T 非空。

你可以任意合法的顺序排列两类操作,例如n=4时使两类的操作顺序为(1,1,2,1,2,2,1,2)。则共可能得到多少种不同的 B ? 答案对 998244353 取模。

1n100

首先容易想到把 A 弄成一个互不相同的数组,令相同的数越靠后越大即可。

考虑区间 DP。暂定 dp[l][r]lr 排出来的方案数。

观察性质:当序列的最大值出堆的时候,堆一定为空。在堆清空之后的进出堆操作,就都与前面的数无关了。这可以作为划分状态的依据。

因此转移考虑枚举 alar 的最大值 mx 在哪里。注意如果 mx 初始在 pos 位置,显然它最终只会在 posr 中。

但是这样无法形成递推,因为枚举了位置之后还是会把最大值考虑进去。所以升维,dp[l][r][x] 表示 lr 中只考虑 x 的数的方案数。

T4:

洛谷原题。History Course

posted @   FLY_lai  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示