「杂录」CQOI 2018 背板记
背景
经过一天天的等待,终于迎来了\(CQOI2018\),想想\(NOIp\)过后到现在,已经有了快要半年了,曾经遥遥无期,没想到时间一转眼就过去了……
日志
\(Day0\)
因为明天就要考试了,早上来了一发模拟考,考得心态炸裂……不过横向对比了一下,同校的同学考得也差不多的样子,所以还算是有一点安慰吧……(什么,你问我具体分数?)
下午去试机,发现\(GUIDE\)用不起,所以只能用\(CodeBlocks\),然后对字符串心虚的我决定打一发后缀数组,然后果然啊,错误连篇……我是不是该滚粗了……然后同校\(dalao\)过来一眼秒掉错误,\(orz\)狂膜\(JeremyGuo\)巨佬。果然我这种后缀数组不会打的人只有被虐啊……
晚上看了一下网络流和线段树,根据\(CQOI\)的套路肯定会考的吧……
\(Day1\)
考试前喝了半瓶咖啡,然后就进考场,发现\(C\)盘竟然也解封了,然而并没有什么用……写了一个自动生成对拍程序的程序放着。
然后发了奇怪的密码NOI2018cq-cs
,让我吓得以为和湖南联考(不过湖南好像很早就省选完了),结果只是由于\(NOI\)在长沙而已。然后就是读题了……
先看\(t1\),这……不是\(BSGS\)的模板题吗?上个星期才学会的……好好好很可做!
再看\(t2\),数有向图中有多少棵以\(1\)为根的树,不会\(orz\)……
又看\(t3\),这不就整个一个组合数学吗?预处理组合数,\(Lucas\)定理,快速幂一顿乱搞就好
了……再看复杂度,\(n=10^7,a=45\),时限\(1s\),跑\(O(n\log a)\)怕不是卡常数神题。
然后考虑了一下决定打\(t1\),很快就调出来了,但是心虚……于是就开始对拍,然后去想\(t2\)。
想了一会儿,还是没有思路。于是就看准了\(n\leq 10\)的数据点打了一个状态压缩\(DP\),细节挺多的,很虚……不过测了完全图之类的特殊情况,答案都正确所以还是比较放心。此时\(t1\)已经快拍了\(1W\)组了,没有错误于是很放心地关掉了对拍\((flag!!!)\)。
然后\(t3\)想想还是写了组合数学,代码巨短让我很怀疑,一测果然时间爆炸……经过奥妙的卡常数底层优化,还是只能优化到\(1.5s\)。这个时候真的很想裱出题人,只有两个分数段\(30pts\)和\(100pts\),\(30pts\)是\(O(2^n)\)枚举都可以过的,\(O(n\log a)\)就算不是正解,掉到暴力分也是让人醉了。
考试结束前\(30min\),检查了一下代码,没有什么低级错误,然后就结束了。
(交流后得知\(t2\)是矩阵树板题……\(orz\)有两道模板……)
下午回家浪了一波,又复习了一下网络流和字符串(毕竟今天没有考……)
\(Day2\)
把昨天没喝完的咖啡喝完了进去(节约从我做起)。
跟昨天一样,\(C\)盘解封了,并且昨天的题目和程序都还在(这是什么鬼)。
扫了一眼\(t1\),秒掉——状压\(DP+\)卡常……不过安卓的屏幕手势真的很有趣……
然后看\(t2\),九连环?糟了我忘了格雷码了……等等,这题可以找规律?再等等,\(n\leq 10^5\)?竟然考高精度?还多组数据?心里赶紧想了一个压位卡常,把\(30\)次递推转化成\(1\)次的暴力,恩,复杂度差不多……吗?
最后看了看\(t3\),\(emmmmmmm\),搞个前缀异或和,就是在查询某个区间内某一个数出现的次数……诶,这不是莫队吗?还是一道做过的原题?出题人怕不是在逗我?连数据范围都没改?然后猛然回头,这两天都做了什么题?
一道\(BSGS\)的模板题,一道\(MatrixTree\)的模板题,一道莫队模板题,一道无脑\(DP\),一道高精度(不要问我\(d1t3\))……这不是\(NOIp\)难度吗……字符串、网络流去了哪里?
秒掉\(3\)道题之后想要裱出题人,但还是冷静地先把\(t1\)和\(t3\)解决了……然后拍了一下\(t3\),没有什么状况,时间也可以过(\(O(n\sqrt n)\)还很快呢……)。
\(t2\)打完之后疯狂卡常,还是和昨天一样,只能卡到\(1.3s\)。(╯‵□′)╯︵┻━┻
没办法,只能老老实实写\(FFT\)快速幂了……最后\(10min\)调出来,好在其他两题已经检查过了。
小插曲:发现自己昨天的对拍程序和数据生成器,发现没有设随机数种子!!!也就是说,拍了\(1W\)组和没拍差不多……
下午吃完饭后等成绩,出来后是\(70+30+45+100+100+100\),非常惊讶,看来\(BSGS\)果然挂了。由于考得太水了,好多人都是\(500+\),\(NOIp\)挂掉的我自然不可能进队……不过明年还有机会的,要加油!
\(Day3\)
回学校了,上语文课讲《边城》,里面有个人叫大佬,不管是书名还是人名都好喜感的\(233\)。
题目及题解
\(d1t1\)
题目
给定\(P,g\),\(g\)是质数\(P\)的一个原根。再给定\(A\equiv g^a\pmod P,B\equiv g^b\pmod P\),求\(g^{ab}\mod P\),其中\(P,A,B< 2^{31},g\leq20\)。知识补充
\(BSGS\),全称\(Baby-Step-Giant-Step\),也叫大步小步算法。专门解决求令\(a^x\equiv b\pmod m\)的最小\(x\),在扩展\(BSGS\)中,甚至不需要\(a,m\)互质,当然互质肯定更好写。题解
辣鸡出题人,竟然出这样的模板题!连\(ex\)都不带的!只要用\(BSGS\)求出\(a,b\),直接快速幂计算即可……
\(d1t2\)
- 题目
给定一个有向图,求里面有多少个\(1\)为根的树。其中节点数小于等于\(250\),无重边和自环。 - 知识补充
\(MatrixTree\)定理,有向图的入数矩阵减去邻接矩阵,去掉第\(i\)行和第\(i\)列,行列式求值即为以\(i\)为根的树形图个数。 - 题解
裸题还需要讲吗?所以这道题没有做出来还是知识缺乏的缘故……但是出这样一道模板题真的好吗?不会的选手不可能想出来,会的选手一打就\(AC\),不考思维,只考背板能力,不知道出题人怎么想的。
\(d1t3\)
- 题目
一个\(01\)串为交错序列,当且仅当没有两个\(1\)相邻。一个交错序列的权值为\(x^ay^b\),\(x\)为\(1\)的个数,\(y\)为\(0\)的个数,\(a,b\)为给定的数(注意假定\(0^0=1\))。求所有长度为\(n\)的交错序列的权值和对一个质数\(m\)取余,其中\(n\leq 10^7、a,b\leq45、m\leq10^8\)。 - 知识补充
然而还并不会做 - 题解
然而还并不会做
\(d2t1\)
- 题目
求有\(n<20\)个解锁点的安卓手机解锁手势方案数。\(n\)个点的坐标全都告诉你了,一个手势合法必须满足:
- 不少于\(4\)个点
- 连线必须是直线
- 不能跨过未经过的点
- 不能走到已经经过的点,但是可以跨过(相信用过解锁手势的同学更容易理解)
- 知识补充
然而并没有什么要补充的 - 题解
状态压缩\(DP\)一眼题,预处理两点间线段上的其他点即可,不多说。
\(d2t2\)
- 题目
求最少需要多少步才能拆下\(n\)连环,其中\(n\leq10^5\)
不明白什么是\(n\)连环请百度搜索9连环
- 知识补充
然而并没有什么要补充的 - 题解
推出公式\(ans_i=2\cdot ans_{i-1}+(i\% 2)\)
然后高精度快速幂,用\(FFT\)优化乘法即可(然而卡常,不过一般都可以过)
\(d2t3\)
- 题目
给定\(n,k\),以及数组\(a_{1...n}\),有\(q\)个询问,每次询问\(l_i\)到\(r_i\)间有多少组\(x\leq y\)满足\(a_x\)到\(a_y\)的异或和为\(k\),所有数都小于等于\(10^5\)。 - 知识补充
莫队算法,请自行出门百度,不好讲…… - 题解
搞一个前缀异或和,就变成了查询某一段区间中有哪两个数异或起来为\(k\),直接莫队硬上即可。
总结
对比赛
总的来说,这场\(CQOI2018\)就像是模板题大赛一样,竟然比\(CQOI2016\)还要模板……可以拿给学弟学妹们刷模板题……
并强烈吐槽出题人。
不开\(O2\)跑\(FFT\)就是耍流氓
卡常数题目\(1s\)时限就是耍流氓
模板题一坨就是耍流氓
子任务只有\(0,30,100\)就是耍流氓
\(O(n\log n)\)与\(O(2^n)\)无区分度就是耍流氓
对队友
这一次我们学校一共有\(5\)个高二,\(2\)个高一,\(1\)个初三还有\(1\)个初二的参加——就是我……除了高二的\(4\)位大佬进队,其他全体阵亡……最可惜的是我们学校现在最厉害的女选手\(YuKi\),苦苦学了\(3\)年的竞赛,成绩稳定,虽比不上四位大佬,但是每次比赛都可以得到高分,尤其在雅礼集训时。这一次也是失误极少,但是由于有道模板题没有学过,直接阵亡,另外\(Kyle\)同学差个几十分就可以进队了,还是很可惜。
对自己
这次虽然是一场模板题检测,但是还是觉得不够理想……矩阵树定理是曾经看过的(学莫比乌斯反演翻书的时候),但是一直都没有认真看过博客,连矩阵树是拿来干嘛的都不知道。包括\(BSGS\),得到\(70pts\)多半是\(map\)被卡常了(或许?不过自己跑确实是\(920ms\)左右),嫌累,偷懒,然后就出锅了……
不过,也许这一次我还有一些不足,但我确实是真真正正地从一位\(NOIp\)选手走过来了。我这半年的时光并没有白白流失,因为在这半年里,我真切地感受到了自己的成长。或许有过迷惘,或许有过失落,也有过\(AC\)的欣喜,有过终于把一道题调过了的满足。我想,虽然没有进队,但是这一路上伙伴的言语,自己的进步,都在告诉我:我的努力没有白费。\(OI\)的路,我还要走下去,并且脚步愈来愈坚定。
虽然感觉\(CQOI\)出的题都太\(naive\)了,但是依然没有\(AK\),相比之下,四位学长都取得了很好的成绩。所以,我毕竟还是修炼不够呢……还是希望能够坚持下去,不畏困难。毕竟是自己选的路,跪着也一定要走完。
毕竟,来日方长。
「杂录」CQOI 2018 背板记的更多相关文章
- 「杂录」CSP-S 2019 爆炸记&题解
考试状况 \(Day1\) \(8:30\) 解压,先打个含头文件和\(freopen\)的模板程序,准备做题. \(8:35\) 开题,心想着按顺序做吧,毕竟难度一般是按顺序排的. 第一题,一眼看过 ...
- 「九省联考 2018」IIIDX 解题报告
「九省联考 2018」IIIDX 这什么鬼题,送的55分要拿稳,实测有60? 考虑把数值从大到小摆好,每个位置\(i\)维护一个\(f_i\),表示\(i\)左边比它大的(包括自己)还有几个数可以选 ...
- LOJ #2473. 「九省联考 2018」秘密袭击
#2473. 「九省联考 2018」秘密袭击 链接 分析: 首先枚举一个权值W,计算这个多少个连通块中,第k大的数是这个权值. $f[i][j]$表示到第i个节点,有j个大于W数的连通块的个数.然后背 ...
- Loj #2479. 「九省联考 2018」制胡窜
Loj #2479. 「九省联考 2018」制胡窜 题目描述 对于一个字符串 \(S\),我们定义 \(|S|\) 表示 \(S\) 的长度. 接着,我们定义 \(S_i\) 表示 \(S\) 中第 ...
- 「编程羽录」上线,程序员必备的这些技能你能get到嘛?
大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...
- NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立
http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...
- Diary / Solution Set -「WC 2022」线上冬眠做噩梦
大概只有比较有意思又不过分超出能力范围的题叭. 可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics 任意一个 ...
- Note -「动态 DP」学习笔记
目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...
- Loj #2495. 「AHOI / HNOI2018」转盘
Loj #2495. 「AHOI / HNOI2018」转盘 题目描述 一次小 G 和小 H 原本准备去聚餐,但由于太麻烦了于是题面简化如下: 一个转盘上有摆成一圈的 \(n\) 个物品(编号 \(1 ...
随机推荐
- 新手编译开发OpenWrt入门教程(自定义固件、ubuntu学习)
转自: http://www.znck007.com/forum.php?mod=viewthread&tid=21571 由于openwrt编译教程资料很多,不同的cpu芯片只需要选择对 ...
- Dev控件GridControl实现CheckBox列和ComBox列
1.在sql语句中添加空白行,如select c1,c2 null c3 from xxx; 2.将sql语句查询结果与gdc绑定CmmFrm.BestFitGridViewColumnsWidth( ...
- python_class21
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @version: 3.5 @author: morgana @lic ...
- Java连接mysql数据库攻略
一. 软件下载 Mysql 下载版本:4.1.11 http://dev.mysql.com/downloads/mysql/4.1.html JDBC驱动 下载版本:3.1.8 http://dev ...
- C# WinForm中如何让当前应用程序只允许启动一个实例
我们在WinForm开发中,很多情况下是需要只允许让用户运行一个实例,那么代码其实很简单.只需要修改Program.cs文件,代码如下 static class Program { /// <s ...
- ListView显示Sqlite的数据美化版与性能优化
在上一篇文章中,我们已经实现在listview显示数据库内容的.但是我们listview中,排版不是很好看,所以这篇文章呢,我们来对listveiw进行美化.哈哈,说白了,就是对listview添加一 ...
- Python之路:面向对象及相关
其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstan ...
- sys添加调用模块的路径;遍历可以调用模块的路径
import sys sys.path.append("D:") for i in sys.path: print(i)
- 关于android写入SD卡数据的学习代码
String path = "data/data/com.example.qqlogin/login.txt"; FileOutputStream fos = new FileOu ...
- go语言linux环境配置
linux的设置方法:有4个环境变量需要设置:GOROOT.GOPATH.GOBIN以及PATH.需要设置到某一个profile文件中(~/.bash_profile(单一用户)或/etc/profi ...