CTS & APIO 2019 游记
写在前面
算是省选后的第一轮大考。
去年因为某些原因并没有参加 CTSC 以及 APIO,还是有些遗憾,所以希望今年能有所收获。
也希望今年的 CTS 能延续去年的出题风格,这样我还能苟一两个题。
然而事实证明我还是太 naive 了。
5.13 (CTS Day 1)
日常延时 5 分钟开考。
发现竟然开了-std=c++11
!简直好评。
看完三个题发现都不会,瞬间就自闭了。
先玩了一会 T1 发现无果,感觉我推出了一堆奇奇怪怪的玩意儿,硬要写也很难写,而且得分似乎也不太乐观,于是无奈先扔了去看 T2。
看完 T2 感觉有很多想法。先想出了一个 \(O(Dn^3)\) 的 dp,写了一下过了样例,于是继续想优化。用生成函数推了一下发现是算这么一坨东西:
\[n! \sum_\limits{k = 0}^{n - 2m} \left(\sum_\limits{i = 0}^{+\infty} \frac{x^{2i + 1}}{(2i + 1)!}\right)^k\left(\sum_\limits{i = 0}^{+\infty} \frac{x^{2i}}{(2i)!}\right)^{D - k} [x^n]\]
于是我并没有再往下推......
于是我就写了一个 \(O(n^2 \log n)\) 的多项式做法。
看了下数据范围发现 \(n, D \leq 100\) 的部分之后居然直接就是 \(n, D \leq 4000\) 的部分,抱着试一试的心态跑了一下 \(n, D \leq 4000\) 的数据发现要 12 秒,于是又自闭了。不过我还是存着侥幸心理交了这个做法,因为我的复杂度与 \(n - 2m\) 有关,所以如果 \(m\) 相对较大的话,还是能过一点数据的。
这时候已经过了很长时间。开 T3 之前心想应该慢慢来搞提答,于是就先跑回去把 T1 的暴力打了。
看完 T3 没什么思路。想了一下感觉这个题 \(\rm type = 1\) 的部分似乎可以先通过随机化来确定安放顺序,再找个贪心的安放方法,最后再执行多次取最优解。于是先敲了一个乱搞来解决 \(\rm type = 1\) 的点。发现第一个测试点中 \(n\) 很小,于是执行次数大概设了个 \(10^4\)。令人惊喜地是,竟然直接跑出了第一个点的 \(10\) 分答案。这时感觉这种做法似乎挺靠谱,于是直接拿这份程序去跑第三个测试点,跑出了 \(9\) 分的答案。把执行次数改到了 \(10^5\) 后,也轻松跑出了 \(10\) 分的答案。之后通过一系列的调参以及修改随机方法后,在除了第五个测试点之外的测试点上都拿到了一定的分数。
对于 \(\rm type = 2\) 的部分,并没有想到太好的专门的做法。于是把 \(\rm type = 1\) 的部分的代码粘过来改了一下,令人又一次惊喜的是,竟然也直接跑出了第二个点的 \(10\) 分答案。于是我准备也通过调参来跑后面的测试点。然而事情并没有我想的那么顺利,在 \(\rm type = 2\) 的部分上,我并没有拿到太多的得分。
搞了一个多小时后,每个点的得分为:
测试点 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
得分 | 10 | 10 | 10 | 6 | 0 | 9 | 1 | 6 | 7 | 2 |
最后实在来不及搞出更高的得分了。于是检查了一下之前的两道题。在跑 T1 暴力的 \(n = m = 2, l = 3\) 的数据时,发现竟然不能很快跑出结果。瞬间慌得一逼,于是赶快把暴搜改成了打表。至于表对不对,不得而知。
考完感觉今天的得分不高。有点失望。
下午出分发现 T1 果然挂了,T2 也并没有搞到预期之外的分数,于是最后的得分为 0+36+61=97。发现许多人 T2 得分很高,后面才得知光从 \(n\) 个变量的角度考虑的 \(O(n^2)\) dp 很傻逼。此时我的心情和省选第一天考完极其相似,十分难受。不过今天毕竟已经考完,只能希望明天考好一点。
5.14 (CTS Day 2)
日常延时 5 分钟开考。
看完三个题发现还是都不会,不过 T1 是个似乎可做的计算几何,于是准备把重心放在 T1 上。
首先想了一个 \(O(3^n)\) 的状压 dp。之后感觉可以把所有的线段按某种顺序排序后做区间 dp,但很快就发现这显然是假的,于是瞬间没了思路。这时候想到了一种贪心,即把每条线段先看成单独的凸包,然后通过不断合并凸包取更优值,直到不能再合并为止。然而发现第三个样例就能叉掉这种做法。不过,把这种做法反过来,即先把所有线段看成在同一个凸包内,再贪心地去分裂凸包,倒是能通过所有小样例。于是敲了一份这种做法,过了前三个样例。我怀着试一试的心态,跑了一下第四个样例,发现需要花 4 秒多一点的时间,并且输出从第二位开始就和答案不一样。
我准备先通过小数据拍一下这种贪心的问题。于是先把状压 dp 写了,然而发现过小的数据并不能拍出问题,而能拍出问题的大数据又无法可视化,我瞬间不知如何是好。
这时我想先开后面的题,但我又并不想就此扔掉 T1,于是决定再手玩一下,又过了一会儿,终于玩出了能卡的情况。想了一下发现解决这种情况似乎只需要再套上最开始的想法,即对分裂后的每个凸包再拆成单条的线段,然后做一次贪心合并,之后两种情况再迭代进行即可。我认为这很有可能就是导致我无法通过第四个样例的原因。很快码完之后,之前拍出问题的数据得到了正确的答案。我满怀憧憬地再跑了一下第四个样例,然而——我竟然还是得到了和之前一模一样的错误答案。
这时我真的自闭了。玩了三个多小时的 T1 最后依然得到了错误的结果,此时的我几近绝望。
不过由于之前拍出问题的数据通过这种做法得到了正确答案,我认为这种做法还是应该能骗点分。于是我决定分段写,小数据状压,剩余的数据就跑贪心。
写完 T1 后剩余的时间不多了。看完 T2 感觉似乎能想个复杂度三方的做法。然而因为要求是环,要同时考虑前后的匹配情况,于是越想越复杂,最后甚至还叉掉了自己的做法。于是又只好打了个暴搜。打完暴搜甚至又卡了卡常才能保证过第一个点。
看完 T3 发现 \(O(3^n)\) 枚举还需要套一个状压 dp 才能做,于是我连暴力都不会打,瞬间又自闭了。
就这样,我又一次抱着失望出了考场。在不写挂的情况下,今天的保底分是 30+10,我只能期待 T1 有一些额外的分数。
下午出分,还好 T2 的 10 分并没有挂,T1 竟然神奇地得了 65 分。于是最后的得分为 65+10+0=75。然而发现许多人过了 T3,还有许多人 T2 也搞到了不错的分数。于是心里还是很难受,果然还是技不如人,甘拜下风。
所以两天一共四个 998244353 是什么操作啊?
5.15
颁奖日。
似乎运气还可以,拿这破分竟然苟了个银牌,心情算是稍微放松了一点吧。
不过看着大屏幕上一页页的获奖名单,感慨万千,同时也始终有一种无法描述的奇怪感受回荡在心头。
5.18 (APIO Day 1)
偷个懒吧......
没想出 bridges,没开 device,最后想到 lamps 的正确做法然而没时间写了。
我还花了好久才过了 device 的一个 5 分的 \(B = 1\) 的 subtask......
大众切了 device,总分 203,就我没有。自闭了。
考场上 bridges 一直在想询问分块+重构树的做法,然而后面发现把重构树改成离线就是傻逼题了。更自闭了。
5.19
颁奖日。
没写出 device 就显然只能拿个铜牌滚了。
后记
虽然最初抱着玩一玩的心态报了 CTS 和 APIO,不过很好的是又表露出了自己一些新的问题。希望自己能吸取这两次考试,尤其是 APIO 的教训,在马上要到来的夏令营以及最终的 NOI 上能够有更好的发挥。
CTS & APIO 2019 游记的更多相关文章
- thupc & cts & apio & thusc 游记 (北京17日游记)
thupc & cts & apio & thusc 游记 (北京17日游记) Day 0 和隔壁校两人py了一下,六个人组了两队,(左哼哼)与(右哼哼),我和Camoufla ...
- 【比赛游记】(THUPC,CTS,APIO)2019四连爆蛋记
5 月 11 日 坐飞机来到帝都,报道 THUPC. 试机题有皮配,不会. 晚上吃全聚德,喝星巴克.奢侈. 5 月 12 日 早上打 THUPC. 咕到 9 点半开始,到 2 点半结束.
- $APIO~2019$ 游记
我是鸽子. Upd:我全国倒数第一稳了. Uupd:时间过去好久了,这段时间发生很多事,比如NOIP没了... APIO时候的事也记得不是很清楚了,随便写点颓废资料吧: 如果想吃离酒店最近的一家火锅店 ...
- CTS/APIO后文化课游记
根据ghj1222的尿性,干什么事都要写一个游记划水记啥的...然后就写嘛... 现在是5.30微机课,先开个坑,学校6.5放假,我将于6.5后开始更新本文 APIO回来后发生的事真的特别多...有的 ...
- Codechef April Challenge 2019 游记
Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\ ...
- WC 2019 游记 - 败者之低语
败者之低语 WC 2019 游记 Day -1 看了一圈PKU和THU的题,感觉图像识别真有意思... 感觉非常讲道理,pku还是比thu简单一点的... 听说高二414在thu没有进面试? 震惊!( ...
- FJWC 2019 游记
FJWC 2019 游记 Day 0 春节旅游, 刚从杭州绍兴一带赶回来, 然而并没有直接飞去福州, 去了厦门再去福州, 浪费了好多时间. Day 1 酒店到学校有 \(20\) 分钟的步行路程, 感 ...
- CSP-S 2019 游记
目录 CSP-S 2019 游记 DAY -1 Day 0 Day 1 Day 2 后记 CSP-S 2019 游记 机房段子: zr(老师):yyx我看你最近不错哦(此人外号拳皇 yyx:运气好运气 ...
- #3146. 「APIO 2019」路灯
#3146. 「APIO 2019」路灯 题目描述 一辆自动驾驶的出租车正在 Innopolis 的街道上行驶.该街道上有 \(n + 1\) 个停车站点,它们将街道划分成了 \(n\) 条路段.每一 ...
随机推荐
- 实现一个简单的Tomcat
实现一个简单的Tomcat 1. Tomcat作用 我们的web应用会运行在Tomcat中,那么显然请求必定是先到达Tomcat的,Tomcat对于请求实际上会进行如下的处理: 提供Socket服务: ...
- BaggingClassifier
写在前面 Ensemble methods 组合模型的方式大致为四个:/bagging / boosting / voting / stacking ,此文主要简单叙述 bagging算法. 算法 ...
- ajax 提交 form表单 ,后台执行两次的问题
网上大多的答案是说同步不同步的问题,但是我把异步改成同步也不行.async: false, // 单击时表单检查 $('.btn-next a').click(function () { if ...
- Windows008 snmp
- NTC热敏电阻基础以及应用和选择(转)
源:NTC热敏电阻基础以及应用和选择 NTC被称为负温度系数热敏电阻,是由Mn-Co-Ni的氧化物充分混合后烧结而成的陶瓷材料制备而来,它在实现小型化的同时,还具有电阻值-温度特性波动小.对各种温度变 ...
- 使用libxml2创建和解析xml文件
毕业设计需要用到xml文件来组织和存放数据, 对于Linux环境下,有libxml2可供使用. 经过一段时间查询文档和网站, 基本掌握创建xml文档和解析xml的操作, 简单做一下记录. 创建xml ...
- STL函数适配器
一:适配器简介 C++中有三类适配器,分别是容器适配器,迭代器适配器和函数适配器,这里主要介绍函数适配器. (一)函数适配器简介 STL中已经定义了大量的函数对象,但是有时候需要对函数返回值进行进一步 ...
- java判断请求是否ajax异步请求
java判断请求是否ajax异步请求 解决方法: if (request.getHeader("x-requested-with") != null && re ...
- NULL和nullptr
NULL就是0 nullptr是空指针[c++11]
- Linux 系统中部署 LNMP 高可用负载均衡架构集群实现动态博客
(一)设计思路 高可用:keepalived 解决方案 负载均衡:(lvs)DR做轮询,需要一个调度器,后端节点两个(部署nginx动态博客),通过一个vip去访问动态博客 后端节点需要部署动态博客作 ...