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开始前一周进行全真模拟考试的被虐过程和结果.文章内可能包含博主的不良情绪,如果 ...
随机推荐
- linux下mysql 8.0忘记密码后重置密码
1://免密码登陆 找到mysql配置文件:my.cnf, 在[mysqld]模块添加:skip-grant-tables 保存退出: 2://使配置生效 重启mysql服务: service ...
- vue-router基本使用
路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容.Home按钮 => home 内容, ...
- GUI带有右键菜单,带有时间显示的
%带有右键菜单的GUI figure('Menubar','none'); h = uicontextmenu; uimenu(h,'Label','A'); uimenu(h,'Label','B' ...
- GUI常用对话框4
%普通对话框 dialog %单击时会关闭当前窗口 %自定义 关于对话框 点击确定 关闭 h = dialog( ]); uicontrol( ], ... 'string','确定','Callba ...
- Django项目----快速实现增删改查组件(起步阶段!!!)
一.相关知识点回顾 1.什么是反射? 可以用字符串的方式去访问对象的属性 2.反射有四种方法? hasattr(object,name):判断一个对象是不是有name属性或者方法 getattr: ...
- docker 常用操作
1,安装 .检查内核版本,必须是3.10及以上 uname ‐r .安装docker yum install docker .输入y确认安装 .启动docker [root@localhost ~]# ...
- QQ项目
QQ第一部分: 1.数据库 每一个QQ账户必须有 a. state:是否上线的状态 b. IP:正在上线的主机的IP c. port:UDP端口号(用这个和别的好友通讯) 注:TCP连接时,在 ...
- 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图
不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...
- php中通过Hashids将整数转化为唯一字符串
这个类主要是前台显示的主键ID转化成一串无规律的字符串,比较像 Youtube.Youku.Weibo之类的 id 名,从某种意义上可以防采集 在项目中,暴露给用户真实的项目ID,很有可能被恶意采集, ...
- Java线程同步与锁
一.synchronized synchronized锁什么?锁对象.可能锁对象包括: this, 临界资源对象,Class类对象. 1,同步方法 synchronized T methodName( ...