GDKOI 普及/提高 比赛反思总结

6天的GDKOI终于结束了,考得还行吧(有点意外),这里做做总结。

普及组

整个普及组我好像是745分第9名,自我感觉还不错吧。

Day1

这一天总的来说还是有些遗憾的,本来也许应该有400的,不过T1出了一些小意外。

T1

一个比较签到的题,不过比赛的时候我不小心把前缀异或的行列打反了,然后少判断了1,n和n,1的情况,炸剩20分,有点难受。要自己出几个数据看看,或者打对拍,最重要还是要自己肉查,无论是一般不会错的文操或者说是思路,都要检查一遍。

T2

一开始看完题目看样例的时候感觉很奇怪,我一直搞不懂,后来点下发文件的时候才发现样例错了。一开始没什么思路,简单化简了一下柿子,发现要找x左右两边第一个>=y的点。然后就想到把询问挂在点上,然后就想到离线处理l,r。用线段树处理,发现一次循环好像不好做,于是搞了前缀/后缀线段树求出。其实有常数更小的方法,就是用单调栈+二分。AC

T3

比赛时想了一个贪心的做法,不大确定是否正确,拿了两个指针随便搞搞,打得最短。不过听题的时候明白了是正确的。

T4

这一题我想了三四十分钟什么都没想出来。后来重新整理一下思路,发现要过这道题要不在线qlogn要不预处理+在线,或者离线,然后得出结论一定是买p=w的票,那么就是求连通块长度,用并查集处理一下就好了。AC

Day2

Day2是我普及考得最崩的一次(自认为),没有到大众分(200)

T1

我用的是 O ( 1 ) O(1) O(1)的做法,处理出来所有2,5,3,7,然后消掉重复的(2,5)和 (3,7),用周期问题处理一下就好。不过我好像忘记打%10了,60分飞了。。。以后要更认真地检查。

T2

比赛时想了一个奇怪之极的方法,需要求前驱后继,nlogn,幸好评测机跑得快,让我跑过了。正解不是很懂,不过我的也没问题。

T3

比赛时想了很久都不会做,只好打了一个暴力坑了40分。正解是倍增,具体做法看我的另一篇博客。推推柿子的事情。

T4

看到这是一道构造题,我整个人都是崩溃的,瞎打了很多奇怪的东西,爆0了。
正解是分奇偶性,构成一个二分图,然后暴力搜索(题解方法)或者网络流(某H姓神犇)
需要转换,质量很高。

Day3

虽然这天感觉好像崩了(T4文操打错),但分数竟然是第9,加上五十分就是第三了。

T3

看完四题后感觉最有意思的应该是T3吧。我看到这一大串式子,我猜应该是整除分块。然后在那里推柿子,推了半天,最多推到一个 O ( n n ) O(n\sqrt n) O(nn ) 的奇怪柿子,只能这样打了,60分。
正解原来是观察后面那串 ∑ j ∣ i λ ( j ) \sum_{j|i}\lambda(j) jiλ(j) ,发现只有当i为完全平方数时答案才为1,可惜我不会证(已经问了好多个巨佬了,包括PJ总分第3的CZJ)。

T1

T3推柿子无果后返回来想T1,一开始本来想用叉积求角度,后来发现自己不会C++的 c o s − 1 cos^{-1} cos1 只好从边入手,发现就是边的比例。然后打的时候发现double确实会有些精度问题,于是我就定了一个 1 0 − 8 10^{-8} 108 的误差范围(真是智者,为什么不直接搞分数?),结果挂了15分。以后能用整数还是尽量用整数,不要随便搞double。

T4

打完T1后去想T4,打了个dfs,发现n=8 都跑不过去,然后不停优化优化,最后加上了记忆化,应该能过50分的数据。但是!我文操打错了,我把"sequence" 打成了"squence"。。。崩。以后要仔细检查!正解是dp,不难理解,但是不好推。

总结

以后还是要细心一些,要锻炼自己查代码问题的能力和写代码的能力,要尽量减少不必要的失误。

提高组

提高组感觉还不错,第50+名,毕竟是跟高中的同场竞技。

Day1

提高Day1感觉是六天中最炸的一天,240+名

T1

第一题看懂了题目,沾沾自喜,然后脑子就出问题了,打了个一个暴力,匆匆走人,结果爆0!我在考场上连随机数都没有打……我也不知道我在想什么
正解是贪心,GJX还在后一天的讲座中讲了随机数的做法2333

T2

想了很久很久后无果,只好打了一个 O ( n 2 ) O(n^2) O(n2)暴力,同样匆匆走人,结果没有注意到数组空间的问题,一分没有QAQ

T3

我在这上面想了很久,然后想出一个 O ( n n ) O(n\sqrt n) O(nn ) 的分块的做法,然后怒肝2h+终于过了前三个样例。一测第4个样例:RE,原来空间炸了(我还开的是vector)!无奈,只能这样交上去,结果还有65分(唯一拿分的一题)
正解是manacher+二分答案+ST表

T4

看完题,完全没有思路,直接弃疗。好像说是多项式+生成函数

Day2

6天当中最满意的是Day2,270分

T1

比赛时看到期望,顿时精神抖擞,连忙列一个转移方程: F i = p i F i + 1 + ( 1 − p i ) F i − 1 + 1 F_i=p_iF_{i+1}+(1-p_i)F_{i-1}+1 Fi=piFi+1+(1pi)Fi1+1,然后就想起三天前讲的概率和期望(我唯一听完的一场讲座),想到里面用转移系数然后解方程的方法,连忙推柿子,打了一打,过样例了。但没有大数据,心里很没底,而且暴力也不会打。幸好最终A了。

T2

完全没什么想法,匆匆打了个暴力走人,后来仔细一想想到了type=2的做法,于是T2就拿了40分。正解就是线段树(我竟然没想到……)

T3

幸好前一天学会了Manacher,今天刚好用到,打一个dp,然后搞个马拉车,用一个线段树优化一下就好了。

T4

毫无思路,同样打个暴力走人。正解不会

Day3

最难的一天,没多少人上100(好像不过10个)
坑了一个85分,竟然有前20.
这天的就没什么好总结的了,全是暴力,虽然有点波折,但是终究是暴力。T2由于不会bitset,做不出60分……

总结

这次GDKOI暴露出了自己很多的问题:特别是考得不稳。
容易发现:如果一天没有一道题发生失误的话,分数是很可观的,如提高Day2,Day3
继续努力吧!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值