SCOI2019 游记
写在前面
其实冬令营之后就有一些想说的内容,由于心情原因没有写出来。PKUWC 失误频频,唯一可能还有点价值的就是 Day2T3 计算几何推了 76 分出来。NOIWC 更是无心再谈,感觉是被提答送走远了。不过归根结底还是自己的问题。
转眼间快三个月过去了,期间一直在广泛做题,也学了一些新的算法。有没有成效,就在省选考场上验证吧。希望不要再向去年那样颓废了。
笔试面试差评。
4.12(Day0)
下午笔试。
100 道单选题几分钟就写完了,当然还是喜闻乐见地出了一些小锅。一些经典的锅见知乎 如何评价 SCOI2019,这里就不再赘述了。
4.13(Day1)
拿到题之后打算顺序开。
看完 T1 瞬间整个人都不好了。为什么一来 T1 就感觉不可做啊。于是先打了个 30 分的模拟。正准备弃疗的时候突然发现第二档部分分也满足 \(M \leq 10\),于是简单改了下,写了个lower_bound,这样应该就有 50 了。
这时 T1 暂时没有更好的想法。时间还比较多,于是我把 T2 和 T3 都浏览了一遍。发现 T3 好像是个数学题,似乎可以推一推,于是准备优先写 T3。不过在这之前,我得先看一下 T2 好不好拿分。
结果看完 T2 后只胡了一个高复杂度的做法,而 \(q\) 的数据范围出到了 \(10^6\),瞬间就自闭了,不过这种做法说不定能骗点分。然而因为并不想优先开这个题,于是先打了个 20 的暴力就跑路去看 T3 了,决定等有时间再来写 T2 的部分分。
T3 推了一下,一个显然的想法是设 \(f_{i, j}\) 表示超矩形的前 \(i\) 维坐标乘积(即 \(\prod_\limits{x = 1}^i a_x\))为 \(j\) 时所有 \(\prod_\limits{x = 1}^i a_x^{b_x}\)的和,转移为 \(f_{i, j} = \sum_\limits{d |j} f_{i - 1, d} \times \left(\frac{j}{d}\right)^{b_i}\),发现转移是狄利克雷卷积的形式,因此最终要求的 \(f_k\) 即为 \(k\) 个形如 \(g(x) = x^{b_i}\) 的函数的狄利克雷卷积。想了下发现由于许多 \(b_i\) 是相同的,并且 \(b_i\) 的种类数不超过 \(5\),因此可以将函数按 \(b_i\) 分组,单组内倍增,最后再合并。根据杜教筛的那套理论,可以只存所有函数的 \(O(\sqrt n)\) 个前缀和值,再构造一下杜教筛就可以较快地做单次合并卷积了。感觉应该跑得很快,于是准备试着写一写。写写调调了很久后过了样例,尝试着造了一组最大数据跑一下,结果要 10s 才能跑出来。又想了许久,想不出更好的做法了。我决定检查下我的写法或是卡卡常数。
此时我就走上了一条不归路。当时的我已经忘了 T1 这个东西,仅仅在 T2 和 T3 中抉择了一下,认为卡过 T3 会现实一点,并且更容易得分,于是整场考试的后半部分我一直在卡 T3。结果我并没有成功。当考试结束时,最大数据还是需要 6s 才能跑出来。
最终我 T3 的得分仅有 50,这和 30 分的暴力仅有 20 分的差距。这值得吗?我不得而知。
update:今天用 min_25 筛写了一发 T3 发现 0.2s 都不到就跑出来了?自闭了。
于是 Day1 我的分数并不高,仅有 50+20+50=120。
出了考场就听说 T1 可以打表,再一次自闭了。下午果然看到了 T1 一大片的 100 分。
当天下午我的心情一直很沉重,于是面试也不太想说话,这导致我面试成绩也不算太高。因为心情原因,晚上也不太想吃东西,我只希望明天能发挥好一点。
4.14(Day2)
拿到题之后还是打算顺序开。
T1 读了两遍冗长且花里胡哨的题目描述后终于清楚了题意,很快就胡了一个单次询问 \(O(n)\) 的最大连续和做法。想了一会发现从最大连续和的角度考虑似乎不好做,于是把叉积式子拆开,发现答案式子就是两个前缀和的点与询问点的叉积相减,只需让前面的叉积尽可能大,后面的叉积尽可能小。于是求出所有前缀和点构成的凸包,再把所有直线按极角排序后直接写个类似于旋转卡壳的东西求离直线的最远点似乎就做完了,除了求凸包和直线排序之外复杂度都是线性的。很快地写完后和暴力连续最大和拍了一下,没问题后测了组大数据,发现读入有点慢,于是加了个读入优化就跑得飞快了。
这时我的心情稍微放松了一点,打算还是先浏览一遍 T2 和 T3。
结果发现两道题似乎都不太可做,于是我又开始慌了。T2 的 \(n\) 的数据范围不超过 \(2000\),似乎有可以想一想的空间,于是决定先看 T2。
T2 想了很久枚举中间的合法点 \(x\) 然后遍历一遍,再套个容斥之类的东西的做法,结果因为限制太多,无果。不过可以发现对于单个合法的点集对 \((U, V)\),所有合法的点 \(x\) 一定构成一个连通块,即一棵树。此时突然想到了今年 PKUWC 上关于树的计数的小 trick,发现好像以每个绿色点作为合法点遍历一遍求出所有答案的和,再以每条两段都是绿色点的边作为合法边遍历一遍求出所有答案的和,两者相减即可让每一个合法的点集对 \((U, V)\) 唯一出现。这样复杂度刚好是 \(O(n^2)\)。想到这十分激动,于是赶快按照想法敲了份代码,结果却打死过不去大样例。此时已经 11:00 左右了,为了节约时间,我决定肉眼调试,然而看了几遍并没看出问题。无奈只好又写了份暴搜,小数据拍出了问题后,发现结果是一个 SB 错误,改了后终于过了大样例。
update:听说这个 T2 是 [十二省联考2019]希望 那题的弱化版。服了。
我长舒了一口气,现在预计已经拿到了 200 分,但感觉今天大众分应该也会很高。于是为了防止挂分,我并没有急着去看 T3,而是又拍了一下两个题,然后造了点最大数据,在 Linux 下测了下时间和空间。测试无误后,我的心情放松了许多。
T3 被题意吓到了,于是打了个 20 的暴力时间就差不多到了。
刚出考场,就听见许多人互相交流分数。我听到了许多的 240,突然反应过来 T3 的 \(W = 0\) 的部分似乎写个线性基就可以了,于是又白丢了 20。我甚至听见了 270 分的声音,心里有点慌。
下午出分,还好我没有挂分,拿到了 100+100+20=220,这个分的排名在今天似乎比较靠前。正式营员今天的最高分是 240,不过听说非正式营员里倒是出了 270 的神仙。
我简单算了一下,自己应该是在省队线内了,本来这是一件令人高兴的事情,然而我却并没有表现出太多的喜悦,相反,我总感觉有些失落徘徊在我的内心,是压力所迫,也可能是失误所致。观物知情,相信灰色格调的实验楼内景也在应和我的感受。
在离开时,总榜还未公布,但也没有太多值得期待的了。
后记
省选虽然已结束,但在之后短暂的三个月内,各项考试将会接踵而至,希望自己都能够全力以赴。
加油吧。
SCOI2019 游记的更多相关文章
- 【20161203-20161208】清华集训2016滚粗记&&酱油记&&游记
先挖坑(这个blog怎么变成游记专用了--) 已更完 #include <cstdio> using namespace std; int main(){ puts("转载请注明 ...
- 【20160722-20160728】NOI2016滚粗记&&酱油记&&游记
先挖坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.c ...
- NOIp2016 游记
DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...
- NOIP2016游记
只是游记而已.流水账. Day0:忘了. Day1:看完T1,本以为T2一如既往很简单,结果看了半天完全没有思路.然后看了一眼T3,期望,NOIP什么时候要考期望了,于是接着看T2.一开始我推的限制条 ...
- CTSC2016&&APIO2016滚粗记&&酱油记&&游记<del>(持续更新)</del>
挖一波坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs. ...
- 游记——noip2016
2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...
- 【NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2】游记
我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪 ...
- ZJOI2016二试+游记
...excited.... 一场打回原形爽哦. T1莫名爆到了10分,T2T3均没交,一个小时过后就没再拿任何分数,perfectly狗带了... 总之没有给自己充足的时间去敲暴力,ZJOI啊..拿 ...
- NOIP2015游记——一次开心又失望的旅行
啊,一年一度的NOIP终于是结束了 以前的大神都有写自己的感受 然而我居然给忘了!!!! 吓得我赶紧来写一份游记 Day.-INF--出发前一个星期 机智的我选择了停课 就是为了OIER这伟大而又光荣 ...
随机推荐
- cmake 及make 实践记录
DEBIAN操作系统 预备操作: 安装 gcc g++ make cmake 开启Terminal 切换到超级用户 下载安装上述软件 A@debian:~$ su Password: root@deb ...
- web应用安全权威指南(文摘)
第1章 什么是web应用的安全隐患 第3章 Web安全基础,HTTP,会话管理,同源策略 content_length 字节数 content_type mime类型 百分号编码 referer :请 ...
- Hadoop学习【一】单机版搭建
首先要说一下,Hadoop 2.x版本以后的改动,在这里帖一篇文章,觉得写的不错. http://www.ibm.com/developerworks/cn/opensource/os-cn-hado ...
- JQuery中button提交表单报TypeError: elem[type] is not a function jquery
错误: TypeError: elem[type] is not a function jquery 解决: 出现这种现象的原因是,提交的表单中,有标签的name,有以submit命名的 name中不 ...
- FNDLOAD Commands to Download Different Seed Data Types. (DOC ID 274667.1)
In this Document Goal Solution References Applies to: Oracle Application Object Library - Version 11 ...
- WPF制作歌词动画
最近再做一个UWP的音乐播放器,今天实现了歌词动画,不是滚动的,滚动的慢慢研究 思路:在右边放了三个textBlock,设置 textBlock的effect属性 <TextBlock.Effe ...
- WebBrowser控件支持WebSocket
修改html页面,在Header标签中添加如下标签: <meta http-equiv="X-UA-Compatible"content="IE=edge" ...
- 虚拟化 - Hyper-V
不能和VMware.VirtualBox同时使用 网络 交换机其实就是指网卡,只不过是虚拟的 内部交换机 外部交换机
- 1416: Kick Ass Biu [几何]
点击打开链接 1416: Kick Ass Biu [几何] 时间限制: 1 Sec 内存限制: 128 MB 提交: 174 解决: 35 统计 题目描述 在玩Kick Ass的时候,可以发现子弹的 ...
- “全栈2019”Java异常第二十章:自定义异常详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...