11.05总结
早上
八点到十二点二十是标准测试,聂老婆会那边出的题
题号 | 预计得分 | 可得分 | 实际得分 | 偏差 |
---|---|---|---|---|
T 1 T1 T1 | 70 70 70 | 100 100 100 | 70 70 70 | 0 / − 30 0/-30 0/−30 |
T 2 T2 T2 | 50 50 50 | 50 50 50 | 10 10 10 | − 40 / − 40 -40/-40 −40/−40 |
T 3 T3 T3 | 44 44 44 | 44 44 44 | 0 0 0 | − 44 / − 44 -44/-44 −44/−44 |
T 4 T4 T4 | 30 30 30 | 30 30 30 | 30 30 30 | 0 / 0 0/0 0/0 |
我的评价是:
干啥啥不行,下分第一名
有些whker姗姗来迟,但大多还是八点前到了( 6 6 6)
测试的时候还被提到了听歌的问题
为了预防考试不听歌怅然若失的情况,戒掉lyb!
(懒得放码)
首先是 T 1 T1 T1
一眼丁真,鉴定为做过(寒假的时候),打了个 O ( N ) O(N) O(N)预处理(就是捡捡蛋蛋的一层一层标记dfs序), O ( 1 ) O(1) O(1)查询的 70 p t s 70pts 70pts暴力跑路,因为沉迷于后三道题遗忘了再来把剩下 30 p t s 30pts 30pts拿下的心
后 30 p t s 30pts 30pts
只因数(即右儿子)节点编号为父亲编号加上左儿子的大小再加一(因为多了一个自己)
偶数(左儿子)直接父亲的编号加一即可
处理起来很简单,事后我改出来的查询编号代码只有九行
然后是 T 2 T2 T2
看到
g
c
d
gcd
gcd就想到可能会和因数分解有关(确实有),但是考场蒟蒻没想出来怎么用只因数解决
先打了个纯暴力(一个一个跳次方和gcd),特判了一下质数的点(互质答案一定为一),以为拿到了 50 p t s 50pts 50pts
然后——————
RE了!!!!!
我*** *** **** ******** *******,测 ** *********
不予评价
正解
首先把x和y的gcd单独提出来,然后将其拆解记录其每个只因子
然后再处理x和y,gcd的只因子肯定是x和y的只因子,分别记录当前只因子在x和y中占有的个数
下一步,易得一个性质,假设只因子在x中出现过p次,则 x i x^i xi中出现 i × p i\times p i×p次再维护一个该只因子出现 n o w x nowx nowx次时,是y的k次幂
1. k > d k>d k>d 则该只因子会被累计到答案中的幂次为之前已统计可以的加上 ( d + c ) × ( d − c + 1 ) × ( c n t y [ i ] ) 2 \frac{(d+c)\times(d-c+1)\times(cnty[i])}{2} 2(d+c)×(d−c+1)×(cnty[i])其中 c n t y [ i ] cnty[i] cnty[i]为编号i的只因子在y中出现次数(因为溢出,所以加上x和y在 c − d c-d c−d区间重复的即可)
2. c ≤ k ≤ d c\le k \le d c≤k≤d 上界由d变成k,还要加上 ( d − k ) ∗ n o w x (d-k)*nowx (d−k)∗nowx(x出去的)
3. k < c k<c k<c 类似于2中多加的下界从k变成c
可以看出一个矩形,要取右下角一部分矩阵的累乘,就用整个矩阵的累乘除去没被选中的区域
然后用一个累乘器统计答案即可(乘上每个只因子的可用幂次的幂)
沙口 T 3 T3 T3
保龄
维护了一个二阶前缀和四指针求区间和,效率为 O ( T n 2 m 2 ) O(Tn^2m^2) O(Tn2m2),下意识认为T可忽略,看到44%数据满足 n × m ≤ 2000 n\times m \le 2000 n×m≤2000
我:44pts稳了
在四道题的暴力都打完之后就一直死磕想着怎么优化,可以寄了,不如回去看T1
现在暂时还在改
最后是 T 4 T4 T4
看一眼数据范围,猜了个n大于1的因子都不是完全平方数则不会出现0的性质,写了个暴力递归跑了 30 p t s 30pts 30pts
想到了转换成二进制,奇数则删除最后一位,偶数则删除最后一位,然后在第n位加一,但是不知道怎么实现来优化暴力,20min之后跑回去磕T3
因为T4讲解是聋人纯享版,所以暂时还不会