为了能到远方,脚下的每一步都不能少.|

园龄:粉丝:关注:

2023-11-05 15:10阅读: 46评论: 0推荐: 0

NOIP模拟赛记录

NOIP模拟赛记录

2023.10.23 比赛记录

A. 公园

直接 dijkstra即可

B. 括号

考虑这样的贡献,每个右括号,考虑先找到一个左括号与它匹配,

此时考虑在这个匹配左侧加上一个括号序列

可以用一个 stack记录剩下 x 个时的贡献

D. 运算

考场想了个线段树优化建图,其实没必要,因为常数过大,在大多数数据下不如暴力

明显应该把操作逆过来,即从 0 倒推

可以将第一次操作算成加法,然后每次除一下再减一下

除法可以在一开始预处理,即 (i×d)modni 建边

每个点的答案在第一次访问时就确定了,而且只会在第一次访问时向别的点贡献

此时,其实就是一个区间删除,区间查询剩下的数

就可以并查集维护每个点右边的第一个还没被访问的点,暴力扩展即可

有一点点卡常 加个快读就过了

模拟赛总结

T2赛场做法假了,没对拍

T3没有注意到重要的 aiaj 的条件

T4注意线段树常数很大,不如暴力,106 应该优先考虑 O(n) 做法

2023.10.24 比赛记录

A. 勇者

瞎搞题

B. K 近查询

链表维护插入排序 注意到每个数最多被比他大的数经过 lim 次,达到 lim 次以后就将这个数删掉

时间复杂度 O(nlim)

C. 树上流水

显然贪心选深度小的节点一定更优

所以预处理每个叶子的深度和流量 二分即可 注意极限数据会爆 long long

D. 逆序对

考虑线段树维护一个类似cdq分治的东西,就是每个节点维护把左半边和右半边交换后,经过中点的逆序对贡献

lazy tag存一个数组表示当前区间,当前点下面第 k 层所有区间都被翻转了

代码还没写 挖个坑

模拟赛总结

警钟长鸣

爆longlong

2023.10.26比赛记录

A. 发射器

MST板子

B. 树上删边

考虑删边时,贪心先选择最大的点周围的所有边

并查集维护最大值,把操作倒过来就行

C. 欧几里得

人类智慧题

找最小的 k 使得 hk>g

答案为 a=hkgg,b=ha+g=ghhkg+g

这样可以保证gcd满足条件

D. 没有上司的涨薪舞会

dpx,0/1 表示 fax 在/不在时从根到 fax 的期望贡献

模拟赛总结

补数学去

2023.10.27比赛记录

A. 小X的质数

线性筛每个数的最小素数因子 直接判断 前缀和维护答案即可

B. 完美主义

Dijkstra 爆搜

C. 挑战哈密顿

通过 spj 得到答案一定为 n

考虑当前已经有一条满足条件的链,怎么将一个点加进去

考虑最后一个第一个颜色的位置为 x

如果当前点连接 x 的为第一种颜色,则将这个点插入到 x 前面,否则插入到 x 后面,链表维护即可

D. 装备

** 1cin **

所以贪心的把大的放在前面即可,做一个类似二分图匹配的东西,每次检查是否可以把较大的 swap上来

模拟赛总结

好好读题 注意数据范围!

2023.10.28 比赛记录

A. 红球和蓝球

res=(nk+1i)(k1i1)

B. 狂亂の木曜日

考虑对区间(m)分块

可以差分预处理出每一个数在一个块内被覆盖了多少次,这样可以在块内 O(1) 的计算贡献

可以用一个树状数组维护每个位置修改了多少,用于暴力部分计算

总时间复杂度 O(nnlogn)

也可以再对这个前缀和做分块做到 O(1) 算一个的贡献,这样可以优化到 O(nn)

C. 一九八四

定期重构

直接 bfs 重构即可

D. 旅行

考虑 p50subtask 发现可以预处理 p 为所有值时的倍增数组,表示从 x 出发跑 2y 天后的位置

发现当 p>50 时,操作天数很少,直接暴力

2023.10.30 比赛记录

A. 彩灯

原序列可以分为多个尽可能长的几个满足条件的串,答案为连续3个这样的串的长度和的最大值

B. 药品试验

由题目给出的式子 Pi+1=1bcPiacPi1

考虑用 P1 表示所有的 P

答案为 PnP2n

C. 小猫钓鱼

直接模拟即可

map是log的!!!!

D. 模拟旅行

正反做两次 dijkstra 就行

模拟赛总结

距离 AK 的编辑距离不超过 10

对拍多拍一拍啊啊啊啊啊

map是log的,用unordered_map啊啊啊啊啊

2023.10.31 比赛记录

A. 蛋糕

枚举环断开的位置 两次二分

B. Chefina 与区间

按左端点排序,用优先队列维护前面的区间的右端点,每次把小于当前左端点的弹出,剩下的就是与当前区间重合的区间个数,即从当前区间分开要删除的区间个数

对所有的取 min 即可

C. 小 G 的布料

对于每个点维护一个 Bi,j 表示从 (i,j) 最多向上多少个

然后维护一个 Si,j 表示假设有 i 个高为 j 的列,此时矩形高度为 j, 有多少个合法矩形

枚举一行作为最下面一行,单调队列维护每个点的上升空间,保留比当前低的,弹出的时候计算贡献

具体的,我们对上面的 S 做前缀和,然后当前这个区间的贡献就可以表示为 S 上两个点的差

D. Easy Data Structure

建表达式树,树剖,线段树上维护一个 pair 表示每个点取 0/1 的概率

2023.11.02 比赛记录

A. 构造题

对着大样例找规律即可,耐心实现

B. UTF-8

思路显然,dpi 表示以 i 为结尾,转移可以再做数位 dp 算方案数

C. 括号串

矩阵好题

考虑一下矩阵

[1]

转移矩阵如下

op1

[101111001]

op2

[001011001]

空操作

[100010001]

扔线段树上就行

2023.11.03 比赛记录

A. 点分治

观察样例的图,发现 xfaxlowbit(x)

所以枚举向上的距离算个组合数就行

B. 卷王 tzc 和 tree

把所有度为 1 的点合起来,从每个叶子暴力向上,每个点记录一下每个乘积的个数,对于每个查询暴力即可

C. 塔

第二个操作一定不会在高度大于 6n 的地方用,一定不优

考虑 dp[i][j] 表示第 i 列,最下面 j 行被操作 2 覆盖的最小代价

D. 军队

扫描线 挖坑待补

2023.11.04 比赛记录

A. 另一个最长上升子序列

后加入的数显然是不会影响前面的 LIS

所以只需要在最终的数列上做 LIS 即可

可以二分每个数在最终数列上的位置,用树状数组维护前面的加入个数

B. 连通集合

异或哈希+分块

考虑对于操作分块 用异或哈希维护一段区间内的更改对每个点的影响

C. 区间密度

二分答案 用线段树维护区间 max 即可 每个 i 的贡献是 [1,i] 贡献当前 mid[prei,i] 贡献 1

查询整个区间的 max 是否大于等于 0 即可

D. 表达式

p 分解质因数,用线段树维护答案对每个因子的余数,crt做答案即可

2023.11.06

A. 取整

二分即可

B. 缩略

绝妙的题啊

考虑 x=1,y=2 发现每次操作不会影响最终的串的值 mod3 的值,而且每个余数不为 0 的串(除了 xyyx) 都可以缩成一个字母

然后 dp[i] 表示到 i 的方案数,可以从前面最近的余数不与当前相同的转移

C. 最小生成树

1 先拿掉,对其他的点做 MST , 考虑每次连上一个边,连边的贡献为 连上的边的权值-环上的最长边 ,环上最长边可以在并查集中维护

D. 树套树

挖坑待补

2023.11.07

A. 区间

对于每个区间,先检查能不能匹配,能匹配直接匹配,否则检查能不能优化前面一个的右端点

B. 排序

考虑先对原序列随机操作几次,然后每次可以用 log 的做法暴力,多做几次

log 的做法为

每次操作 [1,posi×2] 或者 [posi×2i+1,i] ,按照 posi×2<i 做操作 1 否则后者

C. 分组

贪心发现每次应该选择合法的最小的人,用一个单调栈+主席树就可以

D. 路过中丹

当出现 Si2=Si 或者当前区间可以用偶回文串完全覆盖时就合法

前者用前缀和维护,后者用 manacher + 树状数组 维护

细节挖坑待补

2023.11.09

A. 谜域的界外

最后答案一定是连续的一段点,可以枚举起点,左端点和右端点,暴力

B. 乘船旅行

对每个人的两个选择建边,最后一定是基环内向树,否则不可能

考虑每棵基环内向树都有两种可能,都暴力计算出来

用bitset维护暴力的dp转移即可

C. 失落的世界

二分 考虑初始值为 n3 时运算次数较少 如果不合法就从 1 重新跑 最坏情况为 1018 时跑了 62 次 可以通过

D. 最短路

挖坑待补

2023.11.10

A. 你还没有卸载吗

数论分块 注意边界问题

对拍要注意数据强度

B. 现代豪宅

Dijkstra 板子题

C. 仪式感

有个结论,min 不会超过 7,也就是质因子个数

考虑 dpi 表示 gcdi 时的方案数

dpi=(cntip)i|ddpd

其中 cnti 表示因子 i 出现次数, p 为当前枚举的 min , 倒序转移

注意取余数可能正好等于 0 建议双模数

D. Warrior

挖坑待补

本文作者:xiaruize's Blog

本文链接:https://www.cnblogs.com/xiaruize/p/17782596.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xiaruize  阅读(46)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起