写在前面

算是省选后的第一轮大考。

去年因为某些原因并没有参加 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 游记的更多相关文章

  1. thupc & cts & apio & thusc 游记 (北京17日游记)

    thupc & cts & apio & thusc 游记 (北京17日游记) Day 0 和隔壁校两人py了一下,六个人组了两队,(左哼哼)与(右哼哼),我和Camoufla ...

  2. 【比赛游记】(THUPC,CTS,APIO)2019四连爆蛋记

    5 月 11 日 坐飞机来到帝都,报道 THUPC. 试机题有皮配,不会. 晚上吃全聚德,喝星巴克.奢侈. 5 月 12 日 早上打 THUPC. 咕到 9 点半开始,到 2 点半结束.

  3. $APIO~2019$ 游记

    我是鸽子. Upd:我全国倒数第一稳了. Uupd:时间过去好久了,这段时间发生很多事,比如NOIP没了... APIO时候的事也记得不是很清楚了,随便写点颓废资料吧: 如果想吃离酒店最近的一家火锅店 ...

  4. CTS/APIO后文化课游记

    根据ghj1222的尿性,干什么事都要写一个游记划水记啥的...然后就写嘛... 现在是5.30微机课,先开个坑,学校6.5放假,我将于6.5后开始更新本文 APIO回来后发生的事真的特别多...有的 ...

  5. Codechef April Challenge 2019 游记

    Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\ ...

  6. WC 2019 游记 - 败者之低语

    败者之低语 WC 2019 游记 Day -1 看了一圈PKU和THU的题,感觉图像识别真有意思... 感觉非常讲道理,pku还是比thu简单一点的... 听说高二414在thu没有进面试? 震惊!( ...

  7. FJWC 2019 游记

    FJWC 2019 游记 Day 0 春节旅游, 刚从杭州绍兴一带赶回来, 然而并没有直接飞去福州, 去了厦门再去福州, 浪费了好多时间. Day 1 酒店到学校有 \(20\) 分钟的步行路程, 感 ...

  8. CSP-S 2019 游记

    目录 CSP-S 2019 游记 DAY -1 Day 0 Day 1 Day 2 后记 CSP-S 2019 游记 机房段子: zr(老师):yyx我看你最近不错哦(此人外号拳皇 yyx:运气好运气 ...

  9. #3146. 「APIO 2019」路灯

    #3146. 「APIO 2019」路灯 题目描述 一辆自动驾驶的出租车正在 Innopolis 的街道上行驶.该街道上有 \(n + 1\) 个停车站点,它们将街道划分成了 \(n\) 条路段.每一 ...

随机推荐

  1. Java 面向对象(十二)

    泛型 什么是泛型 泛型:广泛通用的类型 一开始还不确定是什么类型,在使用的时候,才能确定是什么类型 (1)在开始定义的时候,留一个插口 (2)在创建对象的时候,再去插入对应的类型 泛型也可以理解为&q ...

  2. 图片上传利用request.getInputStream()获取文件流时遇到的问题

    图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式.想要获取文件流有两种方式,附上代码 int length = ...

  3. 【源码】openresty 限流

    小结: 1.在连接环节计数,有清零环节 有3个参量 maxburst unit_delay https://github.com/openresty/lua-resty-limit-traffic/b ...

  4. GIS 空间分析案例教程-坐标高斯投影正反算

    GIS 空间分析案例教程-坐标高斯投影正反算 商务科技合作:向日葵,135-4855__4328,xiexiaokui#qq.com 特点: 1. 地理处理工具,可以与任何arcgis 工具和语言集成 ...

  5. linux修改配置文件解决mysql中文乱码和指定数据库存储引擎

    如题,mysql数据库的中文显示乱码: 先看下原来数据库里的字符编码: mysql> show variables like '%character_set%'; +-------------- ...

  6. java判断请求是否ajax异步请求

    java判断请求是否ajax异步请求   解决方法: if (request.getHeader("x-requested-with") != null && re ...

  7. C++线程互斥、同步

     一.线程互斥 如果多个线程需要访问且可能修改同一个变量,那么需要加锁,保证同一时刻只有一个线程可以访问,这个动作即最小“原子操作” 方式1: 使用c++提供的类mutex,lock,unlock即可 ...

  8. PAT 甲级 1048 Find Coins (25 分)(较简单,开个数组记录一下即可)

    1048 Find Coins (25 分)   Eva loves to collect coins from all over the universe, including some other ...

  9. 页面被iframe与无刷新更换url方法

    页面被iframe问题解决方法 if (window.top.location !== window.self.location) { const data = JSON.stringify({ if ...

  10. 在node.js中使用Set

    var set = new Set(); set.add(1); console.log("test1 : " + set.has(1) + " ; " + s ...