写在前面

其实冬令营之后就有一些想说的内容,由于心情原因没有写出来。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 游记的更多相关文章

  1. 【20161203-20161208】清华集训2016滚粗记&&酱油记&&游记

    先挖坑(这个blog怎么变成游记专用了--) 已更完 #include <cstdio> using namespace std; int main(){ puts("转载请注明 ...

  2. 【20160722-20160728】NOI2016滚粗记&&酱油记&&游记

    先挖坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.c ...

  3. NOIp2016 游记

    DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...

  4. NOIP2016游记

    只是游记而已.流水账. Day0:忘了. Day1:看完T1,本以为T2一如既往很简单,结果看了半天完全没有思路.然后看了一眼T3,期望,NOIP什么时候要考期望了,于是接着看T2.一开始我推的限制条 ...

  5. CTSC2016&&APIO2016滚粗记&&酱油记&&游记<del>(持续更新)</del>

    挖一波坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs. ...

  6. 游记——noip2016

    2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...

  7. 【NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2】游记

    我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪 ...

  8. ZJOI2016二试+游记

    ...excited.... 一场打回原形爽哦. T1莫名爆到了10分,T2T3均没交,一个小时过后就没再拿任何分数,perfectly狗带了... 总之没有给自己充足的时间去敲暴力,ZJOI啊..拿 ...

  9. NOIP2015游记——一次开心又失望的旅行

    啊,一年一度的NOIP终于是结束了 以前的大神都有写自己的感受 然而我居然给忘了!!!! 吓得我赶紧来写一份游记 Day.-INF--出发前一个星期 机智的我选择了停课 就是为了OIER这伟大而又光荣 ...

随机推荐

  1. Java并发艺术-CAS

    前言 CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性. CAS ...

  2. alter table导致的mysql事务回滚失败

    今天做数据迁移, 发现事务有时候可以回滚, 有时候不可以回滚, 最后一点点调试发现中间有段修改表结构的语句, 最终导致回滚失败. 1.MySQL最常用的两个表类型: InnoDB和MyISAM.MyI ...

  3. MySql MyBatis 自动生成主键返回null

    <insert id="insert" parameterType="cn.zno.smse.pojo.UserScan" useGeneratedKey ...

  4. 机器学习—K近邻

    一.算法原理 还是图片格式~ 二.sklearn实现 import pandas as pd import numpy as np import matplotlib.pyplot as plt im ...

  5. iptables 增删查改

    一,安装并启动防火墙 二.添加防火墙规则 1.添加filter表 2.添加nat表 指定位置添加 三.删除iptables规则 四.查看防火墙规则 1.查看filter表 2.查看nat表 五.修改规 ...

  6. MSP430 G2553 比较器Comparator_A+、数据流程图DFD、状态转换图STD

    一.CA+构造 MSP430G2553带有一个比较器Comparator_A+(CA+),其构造框图如下图所示. 二.输入 & 输出 如上图所示,比较器有一个同向输入端(V+)和一个反向输入端 ...

  7. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)

    row_number() over()   1.2.3.4.5.6.7 rank() over()  1.2.2.4.5.5.7 dense_rank() over() 1.2.2.3.3.4.5 n ...

  8. .net core 使用 redis

    .net core 使用 redis 个人感觉.net core 对于微软技术而言有很重要的意义 ,所以最近已有时间就想看一看关于.net core 的文章. 今天我就来写一写如何在.net core ...

  9. 在jquery中怎么使用css类名和id来获取元素?

    在jquery中,你可以很容易的使用CSS类名和id类获取元素. 例如: 1.ID:#id $('#idA')——选择id为idA的所有元素,不管元素的标签名如何. $('div#idA')——选择i ...

  10. 各位客官!鼠标点击一个Button之后究竟发生了什么?您知道么?(C#)

    在谈论主题之前,让我们先简单回顾下事件的基础知识吧! 我们知道事件有发出(raises)事件的源,即event sender,也有接收事件通知(notifications)的接收者,即event re ...