【2022-March】杂题乱写

CF1622F

n=2k,可以得到

i=1ni!=i=1k2i×((2i1)!)2

所以要考虑的本质上是 2n2(n2)!,直接判定这两者是不是完全平方数并哪项不是删掉即可

对于 n=2k+1 的情况,最多也只会删掉 n!,2!,(n2)! 三项,那么先判定序列是不是能删掉 0/1/2 项来做到合法,否则直接给出构造

考虑给每个质因子一个随机权值,那么合数的权值就是其所有出现次数为奇数的质因子权值异或和,判定是不是存在一个 x! 的权值是 n! 以及是不是存在一个 x! 的权值是 n!  y! (y[1,n]) 即可

设随机向量长度为 B 时,一个不是完全平方数的数字被异或成了完全平方数的概率是 (12)B,本质上是 x{even}(nx)=x{odd}(nx),其中 n 是某个数字中出现奇数次质因子的数量

|S|=n2n!y!=x!(x,y)n2 种,那么正确率就是 (112B)n2,在 B=64 而非 32 时才可以得到较高正确率

Luogu4240

原式进行简单的和式变换就可以得到:

i=1min(n,m)j|iμ(ij)jφ(j)F(i,ni)F(i,mi)

其中 F(n,m)=i=1mφ(in)

处理 F(n,m) 能做到 Θ(Qn) 复杂度,但是其实 i 比较大的时候要求的东西在每个询问中都是差不多的,所以预处理 x[1,B],y[1,B] 的所有 F(n,x),F(n,y) 的乘积并前缀和,每次询问对于 inB 的部分暴力,剩下的整除分块即可

ARC104E

由于 n 实在是太小了,枚举其全排列,对于 pi>pi+1 那么限制是 apiapi+1,否则严格大于

这时候每个位置的选值集合就是本身上界减去前面严格大于的数字,同时还要做后缀 min

现在限制变成了大于等于,可以使用格路计数的容斥来做,设上界分别是 a1anfi 表示走到了横坐标为 i 的列的方案数(不限制纵坐标),转移就是枚举第一次超出界限的位置即可

显然要暴力算组合数,因为 n 实在是太小了

CF718E

不难观察到图的直径不超过 15,预处理 fi,c,gc1,c2 分别表示 i 到颜色 c 最近的距离和颜色为 c1 某点到颜色为 c2 某点的最短路

不难发现一对 (i,j)[i<j] 的最短路就是 minc{fi,c+fj,c+1,ji}

对于 ji15 的情况,选择的中转颜色的点可能是同一个,再 +1 可能产生错误,那么直接冲暴力

否则观察到 fi,c=gcoli,c/gcoli,c+1

否则枚举 j 考虑小于之并且距离之至少为 16 的所有 i,使用二进制状压他们的 fi,cgcoli,c,这些 i 的另外一个属性是他们的颜色

对于两个属性都相同的 ij 是相同的,计算即可

CF997E

扫描线,一个区间是好区间的条件是 maxmin(rl)=0,使用两个单调栈分别维护最小/最大值,区间加增量即可

要求的是历史权值之和,使用一个全局加权值的操作实现

由于 i 处是 0 致使全局最小值也是 0,那么 “加权值” 的判定就是子区间最小值是大区间最小值

一开始并没有注意到加权值的判定条件,那么写了个暴力过掉了所有 Codeforces 数据,不得不震惊

Luogu7515

先给 Ai,j 任意赋值使得和满足条件,但是不一定在限制的值域之内

定义一种操作 ± 表示给行/列上奇数点加 1,偶数点减一,另一种 表示给奇数点减,偶数点加,通过上面的操作不会改变 2×2 的正方形的权值和

i 行上操作进行 ci 次,j 列上 dj

我们给奇数行/偶数列做 ,偶数行/奇数列做 ±,这样子满足了每个 2×2 的小矩形都是和不变的

那么限制这时候变成了 0Ai,j±cidj 的形式,使用 ckmax 式差分约束可以在 Θ(n3) 复杂度里面实现

UOJ 数据很猛,所以还是要把正环长度缩小再跑(正环长度不超过 50 就离谱)

Luogu7516

对于一个给定的图 G 如果 i 在正图和反图上都能经过不小于 i 的点到达 i 的点 j,那么 i 会对 f(j,G) 造成贡献

使用 Floyd 来算上面的东西,边权变成了每条边现在的标号,目的就是最大化 argmin

注意根据实际含义是要倒序枚举中转点的,这时候 fi,j(i<j) 是正图可达,f(j,i) 是反图可达

Luogu7520

定义点 x 在有向图上的受支配集为题目说的点集去掉 x,一个点在支配树上的父亲是它受支配集中受支配集最大的一个

不难先暴力算受支配集,再使用拓扑排序状物来求支配树

每个点的受支配集变化有 其支配树上父亲受支配集变化 和 存在绕过父亲到达之的路径 两种形式

注意不存在一个点满足 “在原图的受支配集里面所有点的受支配集不变的情况下,产生了路径满足经过父亲但是绕过受支配集中其它一个点到达之”(证明是容易的)

那么只需要对每个点判定是不是产生了绕过 fax 的路径即可

求出来 acc1[x][y] 表示 x 禁止经过后 y 是不是从 1 可达以及 acc2[x][y] 表示 fax 禁止经过后 y 是不是从 x 可达即可

posted @   没学完四大礼包不改名  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示