【考试总结】2021-04-04

A.rng

考场并没有具体想明白这个概率如何计算,然后就挂掉 60

[l1,r1],[l2,r2] 对应到平面直角坐标系上面,在 y=x 上面的面积除掉总面积就是对应概率

那么考虑其可以构成一个梯形或者三角形,那么设

f(x1,x2)={x12                    [x1<x2]2x1x2x22       [x1x2]

那么计算面积就可以直接容斥,也就是 f(l1,l2)f(l1,r2)f(l2,r1)+f(r1,r2)/(2len1len2)

那么写 4f 分别表示,每个分大小讨论,开两个 BIT 做即可

B.lg

前置知识:φI=Id

考虑将把卷积里面的 φ(x) 换成 φ(nx)

也就是有多少个不大于 n 的数只是 x 的倍数,然后就没了

本题考虑对 lcm 中的每个因子进行考虑,枚举每个因子的次数,那么 gcd 的限制就是至少有一个是其倍数

可以用任意选减掉没有其倍数再任意选来容斥得到,套用上面的卷积就能把式子变成:

Ans=pimpx=1mf(pi,x)φ(x)

实现的时候先枚举 pi,计算指数,乘起来即可

注意指数上取模是 mod1

C.pm

先贪心:如果交换一个连续段使得交换后可以让所有的点放到对应位置,同时交换次数少于 len 那么交换

不难发现这样一个段必然是越短越好,每次可以把操作次数减少 1,也就是每个点选择满足的最右一个

这样一个连续段需要满足值域下标相同,这个可以使用前缀和 ,区间 max 解决

另外,还需要满足这个区间里面的逆序对个数的限制,因为值域的条件,那么计算 [1,l1] 里面 [r+1,n] 的个数并减掉,加上前缀逆序对的贡献

不难发现这个可以使用主席树实现
动态
考虑这样一个段的逆序对个数必然是不小于 len1 的,严谨证明考虑归纳,因为最后一个点必然贡献答案,否则可以删掉(也就是等于区间最小值),类似得如果不贡献可以删掉一个前缀区间

(用词意会即可,毕竟不是卷面书写)

同时只需要关心最后一个值域下标相同的点,那么可以在 Θ(nlogn) 的复杂度内计算这样的点

剩下的考虑 dp 即可,转移考虑取上一个或者 把这一段进行交换,记录转移点,最后输出即可

在输出答案的时候可以将每个点不断交换即可,记录每个点的位置,从小到大枚举,复杂度为逆序对个数,不超过 n

这题印象深刻,而且理解相对明白了(证了这么多地方)

posted @   没学完四大礼包不改名  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示