HNOI2017 游记
如果你要问我为什么现在才发出来,那是因为我太懒了
Day0:
日常看板子……不想写题,嘴巴了几道题之后也不想写……
到了晚上颓起来了……回想了一下似乎也没有立什么flag,那就愉快地颓吧……深感技术下滑严重
Day1:
考前还是很紧张的,不知道为什么一到大考前就觉得自己这也不会那也不会。看了很多板子(虽然最后也没有用上)。
Day1开始也不知道出了什么问题,总之就是题目打不开,加紧给我们印刷了纸质版……于是就多了40min的打板子时间。然后这40min我就一直在写FFT……最后就是一直到开考了还没有调出来。当时我就想HNOI应该不会有FFT吧(flag)。
开考看了下三道题,感觉今年的画风不太对。感觉T1很可做的样子。记得老师一再强调要先写暴力,那就先写暴力吧。接着发现T3似乎有个70分的暴力也不难,$O(n^2)$算一算然后解个不等式就直接出答案了。
接下来就开始写T1。一开始想简单了,以为每次旋转其它所有点的深度都会加,这样的话就只需要一个全局标记了……后来才发现旋转的点的子树深度是不变的。花了点时间改过来。写完后拍出了几个错误,之后就和暴力拍上了。此时看了下时间,过去了2h左右。
接下来花了1h左右写T3,试了各种办法,比如把平方拆了,猜有单调性什么的……但是并没有意识到我暴力算的那玩意儿就是一个点积,可以FFT加速。最后分数还是70分。
接下来的时间我就一直在刚T2。总觉得这道题和去年的序列很像……但是想了很久都不会低于$O(n^2)$的做法。看了下还有一个部分分,感觉并没有什么用的样子……然后突然发现,这个部分分可以把$p_1$ 拆成两个$p_2$来算,那么就是HNOI2016的序列了,并且还是简化版……
然后……HNOI2016序列怎么写来着?
花了点时间回忆起了莫队做法,但是线段树做法想不起来了……20W的范围莫队有点虚,最后还是硬着头皮写了……然后发现极限数据6s,就开始了紧张刺激的卡常数,最后卡到了2.0s,刚好就是时限,不知道有分没……
一直等到了5点终于出数据了,开心地发现我三道题都没挂,T2写的60分还卡过去了,真是让人感动。仔细看了一下T2那30分的数据,发现刚好没到极限,于是我就刚好跑过去了……感觉100+60+70=230似乎是个比较高的分数?
晚上和我爸散完步回到家,发现UOJ群里已经出成绩了……点开一看,就被吓到了。TM怎么这么多上200分的啊!我联赛考砸这是要完的节奏啊!今年省选标准分这么高还让不让联赛考砸的人活了啊!
Day2:
今天比昨天还紧张……大概是因为Day1考得比较好,让我有了冲省队的欲望吧。
今天题目没有出问题了,顺利打开了题面。看了一下题目,T2居然是个计算几何,T1感觉是个dp但是C的范围有$10^{18}$感觉没法做啊……T3似乎就是用组合数算算?那么70分还是很好写的吧……(下考场就被告知我T1看错数据范围了)
然后就开始写暴力。第一题暴力很好写,写完之后加个记忆化还可以多20分。感觉空间有点虚,一测空间居然真TM爆掉了……然后发现我数组开的是int,实际上只要bool就可以了……成功压下空间。
跳过T2先开始写T3。突然发现这个模数怎么那么鬼畜……感觉70分拿不到了啊……似乎需要CRT?但是我不会算模数为$p^k$的组合数啊……
然后我就发现我傻逼了。模数的质因子只有2和5,那么预处理阶乘的时候把2和5全部除掉,剩下的部分求逆就可以了。输出不想写特判,就转成高精度输出吧。
写出来测了一发9组相同的极限数据,发现输出怎么不一样?然后就发现了多次输出高精度数组没清空……恰好我暴力用的是同一个print函数,所以拍不出来……好险……
接着就发现被卡常了,于是又开始了刺激的卡常数……逆元改成递推求,2和5的幂次预处理……最后卡到了10组0.2s。想着这70分应该是稳了。
想了一会儿T3正解无果,就开始写T2的暴力。然后发现T2真TM难写。射线和线段判交怎么写啊!最后我强行把射线和线段都转成直线,然后直线求完交再来判交点是否既在线段上又在射线上……我还是用解析式算的……接着我又不会判点是否在射线上……最后就是大力特判,分类讨论……庆幸最后没有挂,我过了样例就没管了。
最后的时间一直在刚T3,因为觉得暴力分多的题肯定正解容易些(像昨天的T3一样)。然后推了1h左右的式子无果,就开始找规律。然后就发现答案似乎是杨辉三角某一行的前缀和?仔细看了下发现答案是$\sum_{i=0}^{a-1}\binom{a+b}{i}$,拍了一下似乎很对,但是似乎要算$O(b)$个组合数?
又过了一段时间,突然想起来组合数是对称的,所以我们可以算出前$\frac{a+b}{2}$个组合数的和,这样接下来就只要算$O(a-b)$个组合数了……非常开心,然后发现……我不会算这个模数下的组合数……
仔细想了想,这个模数也不是质数,分解之后还是$p^k$的形式……似乎有人讲过模数是$p^k$形式的组合数怎么算?但是我已经忘记了……试图现场推出但是失败了……接着我就欺骗自己正解绝对不是这个东西(flag)
接着找到了一个神奇的数列,可以用这个数列来算答案。前几项分别是$1,2,5,14,41$,然后我居然没看出来这是斯特林数,也没有再往后算一项,还以为是乘3减1。开开心心写了一个矩乘,拍Wa了就没交上去。
由于一直到12:58我都还在写矩乘,最后的检查比较匆忙,所以也很怕出现程序交错,文件名打错之类的低级错误……
过了不知道多久,终于出分数了……老师告诉我今天140。那么又是一分没挂?虽然我写的大多都是暴力分,但是省选一题不挂也不容易了。今天40+30+70=140,感觉似乎要进队了?也许可以卡进前13?
接着就是紧张的统分环节……统完分之后听说省队线300分左右?心里默默加上我的联赛分数算了一下,感觉似乎……真的要进队了啊!
最后的结果就是某个联赛考砸的家伙省选翻盘,成功进队。
这之后,竞赛也展现出了残酷的一面——有人留下来,就得有人离去。省选出成绩的那一刹那,心里不只是喜悦,还有一股忧伤——因为意识到要失去一些Friends了。竞赛就是如此残酷,我们能做的,就是尽力做到最好。无论省选如何,未来的路还很长,大家一起加油!
HNOI2017 游记的更多相关文章
- 【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啊..拿 ...
- HNOI2017前被虐记及感悟
本文所记录的时间以HNOI2017第一天考试时间为DAY1,前一天为DAY0,以此类推. 本文记载了博主从HNOI2017开始前一周进行全真模拟考试的被虐过程和结果.文章内可能包含博主的不良情绪,如果 ...
随机推荐
- GUI常用对象介绍3
%text hf = axes; ht = text(,,'示例'); get(ht); %公式 并且设置位置坐标 (积分符号) text('String','\int_0^x dF(x)','Pos ...
- SQL 语法笔记
➪SQL ➪基本类型 char / varchar / int / smallint / numeric / real, double precision / float ➪数据定义 create t ...
- web前端学习路线:HTML5教程之前端模块化开发
1. 命名冲突 首先从一个简单的习惯开始. 由于以前一直做 JavaEE 开发的缘故,在 JavaScript 开发中,我已经习惯将项目中的一些通用功能抽象出来,形成一个个的独立函数,以便于实现代码复 ...
- Struts2 概述
1. struts2应用在javaee三层结构中web层框架 2. struts2框架在struts1和webwork基础之上的发展全新的框架 3.struts2 解决的问题: 用户管理的crud操作 ...
- Camera2点击对焦实现
https://www.jianshu.com/p/76225ac72b56 android从5.0开始,废弃了原有的Camera接口,提供了全新的Camera2接口.Camera2接口为了给app提 ...
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
- Linux环境nginx的配置
1.创建nginx运行账户www并加入到www组,不允许www用户直接登录系统,查看创建. groupadd www useradd -g www www -s /bin/false tail /et ...
- Linux下php添加memcache扩展
很多时候我们都会遇到在已经安装的php中添加其它的扩展. 那我们应该怎么做呢? 这样做.(我们的nginx和php都是已经安装好了的,这里就不做赘述了) 首先,我们需要下载php的memcache扩展 ...
- 人机猜拳游戏Java
作业要求: 我的代码: package day20181119;/** * 猜拳游戏 * @author Administrator * @version1.0 */import java.util. ...
- oracle_sqlplus命令行乱码问题解决
在linux以及unix中,sqlplus的上下左右.回退无法使用,会出现乱码情况. 而rlwrap这个软件就是用来解决这个的. 首先下载rlwrap包:https://linux.linuxidc. ...