2023NOIP A层联测32

2023NOIP A层联测32

A flandre

n 种烟花,每种烟花有两个参数 ab,你要构造一种燃放顺序,使得 b 的和最大, b 会改变,具体来说:设 ij 前燃放,那么。

  • ai<aj ,则 bj+kbj
  • ai=ajbj 不变
  • ai>ajbjkbj

1n106

这个题考场就想到了正解。思考一下,最优方案满足一个性质,将 a 从小到大排序,依次燃放。暴力求答案,然后选出最优的方案就好了,可惜有一个变量没有给初始值挂了 70 分,关键是大样例还过了。

B.meirin

给定两个序列 a,b

q 次操作,每次把 b[l,r] 的每个值加上 k ,每次操作后查询:

l=1nr=ln(i=lrai)×(i=lrbi)mod(109+7)

n,q5×105

因为修改的是 b 的值,我们就可以考虑把 [l,r] 里面的值对答案的影响算出来。

sum1ii×ai 的前缀和, sum2i 就是 (ni+1)×ai 的前缀和。

每个 bi 的贡献就是 sum1i1×(ni+1)+sum2i+1×i+ai×i×(ni+1)

用一个前缀和维护一下这个值就可以做到 O(1) 修改。

考场最后 30min 才想到正解,但是码了 15min 发现只能过小样例过不了大样例,考后才发现是快写打错了。

C.sakuya

n 个房间构成了一棵树,边有边权。树上有 m 个特殊的房间,求走完这些房间的期望。

每次修改会使得连接 x 的所有边加上 k

n,m,q5×105

考虑修改一条边的影响,就是这条边两端的特殊房间的数量的乘积。

先把答案求出来,每次修改的时候就是把答案加上这个影响乘上 k 就好了。

D. 红楼 ~ Eastern Dream

给出一个长度为 n 的序列 a ,有 m 次操作,格式如下:

  • 1,x,y,k 对于所有满足 (i1)modxyi ,将 ai 加上 k
  • 2,l,ri=1rai

n,m2105

根号分治。维护两个数组 vi,j,vsi ,表示对于所有 (x1)modi=jxax 要加上的值, vsi,jvi,j 的前缀和,即对于所有 (x1)modijxax 要加上的值。

xn 可以直接修改。

xn 需要用分块维护差分

总结

期望得分:100+100+0+25=225

实际得分:70+30+0+25=115

这次本来是一个信心场,但还是失误了。两个题想到正解都挂了,一个是忘记设初值,一个是快写打错,就是自己的代码实现能力不足了。而且码完一个题可以考虑先检查一小会。T3 还没有拿到暴力分,遇到这种自己不熟练的题目,可以打打暴力,而不是直接就跳了。

posted @   2020fengziyang  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示