2024.7.13~2024.7.21师大附中集训

2024.7.13

昨天来师大附中了,今天是训练第一天

上午

打比赛
期望得分:0+80+4+100=184
实际得分:5+96+0+11=112
T1:不会做,在最后半个小时打暴力,但是写挂了
正解:DP
T2:复杂度 \(O(n^2\log n)\) ,但是由于复杂度远远达不到如此,并且内存连续性较好,常数小,可以拿到满分;扣了4分是因为没有判断\(n\)=0的情况(怎么会有 \(n\) =0的测试点啊,题目数量为0题???神经病)
正解:使用双指针跳过访问过的位置,将复杂度降到 \(O(n\log n)\)
T3:题目都没看懂,无语了
正解:欧拉公式+解析几何
T4:题目看错啦啦啦啦啦呜呜,以为两个不同颜色节点也能进行操作,然后这样打了"正解",期望满分,结果样例太水了,只有最后一个能检查出我的错误,调半天哎呀
正解:图论建模,二分图匹配

下午

讲解上午比赛题目,剩下两个小时左右讲数论,从gcd等基础知识讲到了扩展欧拉定理等,想听康拓展开但是没时间,哎,明天再听
充实的一天又结束了嘻嘻

2024.7.14

上午

期望得分:100+0+32+32=164
9:26 打完T1,期望100
10:07 T2有了Idea,但是正确性无法保证
10:14 T2 \(O(1)\) ????感觉错了,那就不计入期望分数吧
10:36 打完T4 20部分分
10:42 T4又拿到12分
10:44 T4差点longlong没开
10:52 T3网络流???
11:52 T3 dfs+A* 32pts
12:01 T3加了卡时
12:26 T4加了记忆化

12:2? 我把T4代码交到T1了!!!警钟长鸣

实际得分:0+100+28+20=148

正解:

T1:模拟
T2:随便推一下,结论题
T3:将总边数减去不可走的边(墙)后发现边数等于点数-1,又因为图保证联通,所以该图是一棵树,可以在树上进行树形DP
T4:数位DP

下午

1.讲评早晨题目
2.先讲数据结构,好无聊呀;然后把昨天没讲完的数论也讲了一下,难呀

2024.7.15

上午

期望得分:0+100+40+0=140
9:32 T1写挂了???难受,再调一会如果调不出来就不调了
9:59 不搞了,难受 0pts
10:23 T2打完 二分+线段树, \(O(n\log^2n)\) ,卡着过,早知道好好学ST表了呜呜 100pts
10:5? T4部分分打完,但不会用checker(悲
11:49 T3 DP拿40pts
12:02 T1发现Bug!!!
12:09 还是有Bug,服了
实际得分:30+48+0+5=83

正解:

T1:由于数据太水是道模拟题,但是在考虑前导0和中间0时我非得计算,不直接删去,导致只有30pts
T2:简要题意:给出两个数列 \(A\)\(B\) , \(B\) 单调不增,求使 \(A\) 区间(长为 \(L\) )最小值不小于 \(B_L\) 时的最大区间长 \(L\)
乍一看是二分+ST表,但将其看作两个不增函数,发现图像最多会有两个交点,故不满足单调性
所以应该用启发式分裂(不会)
T3:把球和洞位置放一起排序,然后分析性质,DP
T4:欧拉回路

下午

讲图论,KMP,AC自动机,马拉车等

2024.7.16

上午

期望得分:100+30+0+20=150
09:27 打完T1 期望100pts
09:35 终于看完T2题目了,大模拟??概率DP??NOOOOOOO,先放着
09:38 T3计算几何,去死
09:40 T4似乎很水,try一下
10:07 T4题意理解错了,靠
10:33 T4写完,20pts
12:01 T2写完,30pts
出题人干嘛天天出计算几何啊
一点不会,烦
这次出的什么鬼啊,大模拟,计算几何,操
实际得分:5+30=0+20=55

正解:

T1:二分+并查集,将最优解问题转化为判定问题,时间复杂度 \(O(n\log n)\)
T2:暴力DP
T3:计算几何,一点不会
T4:找每个数位对答案贡献的规律,用线段树维护

下午

讲图论,收获颇丰,记笔记里了

2024.7.17

上午

今天早晨IOI赛制,大家分数都很高,但是我考得稀烂,哎,大致做题顺序如下:
先写T1,调了一下,花了近一个小时,还好
然后看了一下其他题,发现T3是可持久化线段树板子!!!很激动
然后...

调了2.5个多小时的可持久化线段树

无语,调着调着就忘记时间了
调这么久原因:
1.太久没打,但是原理还记得,不到半小时就打完了
2.我没打过修改区间的可持久化线段树
so,100+0+20+0=120

下午

讲DP的状态设计,还好

2024.7.18

上午

今天比赛又是IOI赛制,难受
感觉IOI赛制好玩是好玩,可以用Hash,卡时等玄学算法,但是正式比赛时是OI赛制,没有太大的用处
这次很拉:35+55+0+0=90

正解:

T1:很有意思的一道题:

给你一个 \(n\) 个数的 \(d\) 进制整数序列, 在出现过的所有数字中, 仅有一个数出现了\(p\) 次, 其他数都出现了 \(k>p\) 次, 请输出这个数.
\(3\leq n\leq 1.5×10^6\),\(2\leq d\leq 8\),\(2\leq k<n\),\(p>0\),\(|a_i|\leq 64\),其中\(|a_i|\)\(a_i\)的长度

这道题看似很简单,但是仔细一看它的空间只有8MB!!
容易联想到它的简化版找筷子,
发现这道题可以用xor的原因:一双筷子有两只,两个数的每一位正好出现了2次
那么...
在本题,除只出现p次的数字外,每个数字的每位都出现了 \(k\) 次.so,可以用 \(a_{i,j}\) 表示所有数字第 \(i\) 位是 \(j\) 出现的次数,由于 \(p<k\) ,所以最后每位对 \(k\) 取模,若有余数,则输出 \(j\) .
这题是真的可惜,做过找筷子,在考场也想起来了,但就是死脑筋,用hash,卡半天只有35pts(原30pts).哎,归根结底还是因为自己做题时没有理解透彻,导致这场悲剧
T2:用线段树维护矩乘, \(O(nk^2\log_2 n)\) ,可以过,在考场以为矩乘不满足结合律,只得了55pts.
但正解是用栈维护(我不知道怎么搞的), \(O(nk^2)\)
T3:模拟,但是赛场我题目看不懂
T4:图论,差分约束/二分图

下午

讲DP优化,感觉今天的比昨天简单,听懂了大概70%~80%,嘿嘿

2023.7.19

上午

期望得分:50+70+0+0=120
8:46 T1有思路,可以直接模拟,但是 \(n\leq10^{100}\) ,不想写高精
8:52 T1拿50%,高精有时间再写
9:30 T2 暴力40pts
9:42 T2 map维护 \(p=100\) 的情况,又得30pts
9:55 T3似乎想到正解了,开心,嘻嘻
10:41 题意理解错啦,操
12:27 T4调好,样例过了
实际得分:50+80+8+0=138

正解:

T1:模拟,高精
T2:排序后双指针维护
T3:离散化后扫描线+树状数组/线段树
T4:建反图,类似拓扑排序删边

反思:

T1:高精不会写,挂了50pts
T3:应该认真看题,把样例模拟一遍后再开始思考,写题,尽量确保不会出现审题错误等问题
T4:暴力没写出来,很不应该

下午

讲计数问题,听不太懂

2024.7.20

上午

9:30 T1大抵是100pts了
9:31 怎么又开IOI,哎哟,T1 40pts,操
9:53 T1莫名其妙WA,先不调了
10:10 T2交了,52pts
11:32 T3 4pts
11:59 T4 30pts
12:17 T4 打了个表,40pts
实际得分:40+52+4+40=136

正解:

T1:倒序处理,构造一下
T2:01trie维护异或,逆序对
T3:容斥原理
T4:群论

反思:

T2考场上想到01trie,但是因为没见过用01trie维护逆序对,所以没去细想,很可惜.下次应该有想法就去认真思考,努力实现

吐槽:

明天能不能别开IOI哎哟

下午

杂题,感觉张老师讲的挺好,仅次于杨老师

2024.7.22

上午

期望得分:63+40+50+0=153
9:01 T1 63pts
9:07 T2莫队???
9:25 T2打完发现莫队萎了,操
9:27 发现莫队稍微改改应该能做嘿嘿
9:57 T2不出意外100pts嘻嘻
10:04 T2题意好像理解错了,无敌了
10:07 T2又有思路了
10:54 T2又萎了,淦
10:59 T2暴力!!!40pts
11:31 phi()不是积性函数???
11:38 T2 40pts
12:20 结束前10min开IOI???
12:27 T3 又打了10pts的部分分
实际得分:63+40+20+0=123

正解:

T1:
简要题意:
给出一个长度为 \(n(1 \leq n \leq 10^5)\) 的数列 \(a\) ,求:

\[\frac{\sum_{l=1}^n \sum_{r=l+1}^n \sum_{i=l}^n \sum_{j=i+1}^n [a_i==a_j]}{n+1\choose 2} \]

因为每一项对答案的贡献是独立的,考虑枚举 \(a_i\) ,对于每一项 \(a_i\) ,设数列 \(b\)\(a_i\) 每次出现的位置,上式分子可化为 \(\sum_{l=1}^n \sum_{r=l+1}^n \sum_{l \leq b_i \leq r} \sum_{b_i<b_j \leq r} 1\) ,改变求和顺序, \(\sum_{i=1}^{cnt} \sum_{j=i+1}^{cnt} \sum_{l=1}^{b_i} \sum_{r=b_j}^n 1\),将后面两个求和号可以优化掉,得 \(\sum_{i=1}^{cnt} \sum_{j=i+1}^{cnt} b_i(n-b_j+1)\),发现还可以用前缀和维护 \(b\),得 \(\sum_{j=1}^{cnt} s_{j-1}(n-b_j+1)\),至此,离散化后用vector维护 \(b\) ,可 \(O(n\log_2 n)\) 求解本题
T2:
简要题意:
给一个'+1/-1'序列,问去掉中间一段后的序列的前缀和能取到的值的数量 \((n,q \leq 10^5)\)
实际上是求去掉区间后序列的极值,对于整个序列,维护序列前缀和 \(s\) ,对于每个询问 \([l,r]\) ,答案为 \(max(max_{i=1}^{l-1} s_i,s_{l-1}-s_r+max_{i=r+1}^n s_i)-min(min_{i=1}^{l-1} s_i,s_{l-1}-s_r+min_{i=r+1}^n s_i)\) ,总复杂度 \(O(n+q\log n)\)
T3:
简要题意:维护一个长度为 \(n\) 的序列 \(a\),支持区间乘 \(x\) ,区间欧拉函数求和 \((n,m \leq 10^5,a_i,x \leq 100)\)
\(x\) 质因数分解,分类讨论每个质因数 \(p\)\(a_i\) 的情况:
1.当 \((a_i,p)=1\) 时, \(\phi(a_ip)=(p-1)\phi(a_i)\)
2.当 \((a_i,p)=p\) 时, \(\phi(a_ip)=p\phi(a_i)\)
如果某个节点上的所有数都有质因子 \(p\) ,我们就给这个节点上质数 \(p\) 对应的覆盖标记标为1
在区间乘法操作时,如果这个区间上 \(p\) 对应的标记是1则直接给它打上乘法懒标记即可
否则继续递归左右子区间,直到区间覆盖标记是1或递归到单点区间为止
时间复杂度 \(O(25n+m\log n)\)
T4:
矩阵快速幂+状压DP,一点不会

反思:

T1:做题时应该考虑将题意转化为式子,再进行推导,化简
T2:考场上大致想到了做法但是不知道怎样实现,原因主要是对学过的知识不敏感,做过的题目不多
T3:数论方面知识薄弱,学的时候不求甚解,囫囵吞枣
T4:矩阵快速幂和状压DP方面非常薄弱

吐槽:

最后10min开IOI什么鬼,一堆人卡评测太难受了

下午:

仍然杂题,一点都听不懂

总结

这次集训主要是在知识点上补缺补漏

感谢所有讲课老师

杨志灿(图论)和张志玲(杂题)两位老师讲的超级好,再次感谢!!

posted @ 2024-08-13 22:16  DANNNqwq  阅读(41)  评论(0)    收藏  举报