GDOI2018游记&题解
day0
第一件事当然是去酒店入住+领一堆东西。
感觉酒店不错,而且离学校挺近的,走路10分钟不到,骑车5分钟就到了。
然后去学校吃饭。我们在教工饭堂吃饭,饭菜还不错,但是没有筷子差评。
吃完饭后找了一下附近的咖啡厅,然而并没有找到。
剩下的时间都在玩手机。
day1
有半个小时试机时间,就敲了三个板子(NTT,SA,LCT),结果一个都没用到。
开场先看A,发现是个傻逼题,10分钟切掉。
然后看B,想了一会感觉不会做,就跳过了。
接着发现C是傻逼题,一个小时写完+拍完。
D也想了一会想不出来,也跳过了。
这时候已经过了两个小时了。
后面两个小时都在死磕B题,想过两个DP,但都过不了拍。最后写了一个\(O(n^2)\)的DP。
出考场后问了一下B题怎么做,发现差分一下就是联赛题了。
我退役把.jpg
中午一直在玩手机。
下午讲评,D是一个数学+生成函数题,感觉这种题做四个小时都做不出来。
最终得分:100+60+100+0=260
题解
A:傻逼题不解释
B:差分之后就变成:有\(n\)个数,你每次可以把一个数\(+1\),同时把另一个数\(-1\),问你最少需要多少步才能让所有数\(\bmod m\)都变成零。排序+贪心就行了。
C:如果把所有的深度(插入&询问)加上时间的话,就是一个单点修改矩形求和的题了。CDQ分治+树状数组。貌似树套树也能过。
D:考虑缩点以后整个图会长什么样。假设有\(k\)个强连通分量,就一定存在一条长度为\(k\)的链。我们可以枚举这条链上相邻两个点的连边,那么这条边前面的连通分量连到后面的边的方向都是固定的。所以我们可以算出每一条边出现的概率,然后连通分量个数\(=\)上面的边数\(+1\)。
实际上是枚举这条边前面的点数。
\[
ans=\sum_{i=1}^{n-1}\binom{n}{i}{(\frac{1}{2})}^{i(n-i)}
\]
然后考虑有告诉你路径的时候要怎么做。
对于每条路径,我们可以枚举这条边是在这条路径的哪两个点之间,这样就有一个\(O(n^2)\)的DP了。
如果一条路径跨过了这条边,那么就会对上面那条式子有\(2\)的贡献(因为有一条边的方向确定,抵消一个\(\frac{1}{2}\))。
所以我们可以对于一条长度为\(k\)的路径列一个生成函数:\(1x^0+2x^1+2x^2+\ldots+2x^{k-1}+1x^k\)
设把这些生成函数乘起来后的生成函数是\(\sum_{i=0}^na_ix^i\),那么答案就是\(\sum_{i=1}^{n-1}a_i{(\frac{1}{2})}^{i(n-i)}\)
day2
开场先看A,果然是一道最短路题(话说d2t1除了最短路&BFS还出过什么?)。不过感觉到了出题人深深的恶意,因为把莫比乌斯反演强行塞进了一道签到题。
做完之后去看B,发现是一道套路题,可以直接二项式展开,也可以变换一下变成组合数。
然后。。。就发现C和D一道都不会。
在思考了半个小时后,想到了D的正解之一。很不幸的是,我找了几个看上去这个算法会错的数据把这个算法叉了,就把这个算法扔掉了。最后写了一个暴力。
最后一个小时一直在思考第三题,突然想到可以枚举\(h\),找满足条件的\(x\)在那个区间内。接着发现数据随机,就写了一个两个\(\log\)的线段树做法。本机测了一下极限数据,跑了\(6\)秒,应该是过不了的。
中午还是一直在玩手机。
下午讲评前听说C大常数两个\(\log\)做法过了,觉得很不可思议。
最终得分:100+100+100+50=350
题解
A:求两点之间的边权可以用莫比乌斯反演,然后二分+最短路。
\[
\begin{align}
&\sum_{i=1}^n\sum_{j=1}^mi+j[\gcd(i,j)=1]\\
=&\sum_{d=1}^{\min(n,m)}d\mu(d)(\frac{n}{d}S(\frac{m}{d})+\frac{m}{d}S(\frac{n}{d}))\\
S(n)=&\sum_{i=1}^ni
\end{align}
\]
B:可以直接二项式展开+DP,也可以推一下式子变成
\[
\sum_{i=0}^k\begin{Bmatrix}k\\i\end{Bmatrix}i!\sum_{S\subseteq V}\binom{f(S)}{i}
\]
然后还是DP。
后面这个做法可以优化到\(O(nk)\)
C:可以发现求答案的过程就是在笛卡尔树上面跳,因此可以暴力维护笛卡尔树。因为数据随机,所以树高和 子树大小的期望都是\(O(\log n)\)
D:以\(x\)为起点跑一棵最短路树。那么最小环一定只经过一条非树边。
直接处理出每个点在\(x\)的哪棵子树内,然后枚举那条非树边。
最短路可以用不加堆优化的dijkstra,因为是稠密图。
day3
今天在电子阅览室考。
开场先看A,题目说的是二维偏序,但我脑子里想的一直是三位偏序。我只会\(\log^2\)的做法,很明显会MLE,就跳过了。
然后看B,感觉不太好做,也跳过了。
然后发现C是个水题,就花了30分钟切掉了(我在试机的时候写过一个SA模板,直接搬过来用了)。
做完C之后突然发现A是二偏维序,也花了30分中去写+对拍。
接着就一直在搞B,写了个两个\(\log\)的做法,推了好久的式子+一堆细节。
写完前三题只剩下一个小时了,就开始思考第四题,发现无法理解题目。问了评委,评委让我仔细阅读题目。
那我也没什么办法啊。。。就一直盯着题目猜题意,过了几分钟才看懂。但是已经没时间写正解了。就写了个 暴力。
下午发现B的后面5个点挂了,而且第一问都是错的。
我也很绝望啊。。。明明都拍上了。。。
UPD:问题找到了,有一个求子树内点数的地方加了一个取模。。。
最终得分:100+50+100+20=270
为什么出题人那么喜欢出NOIP三合一啊。。。
题解
A:\(O(n^2)\)做法是tarjan求强连通分量。正解是用线段树优化建图。
B:第一问就是求重心,第二问只需要求出一个点的子树内所有点到这个点的距离和,可以DP或者用其他方式搞一搞。
C:求有多少条不同的路径就是求整个图的最大流,求答案可以二分+哈希或者把每个猴子的串排序后求第\(k\)小的相邻两个之间的LCP。
D:先用tarjan把所有小岛找出来,再用树型DP求直径,最后用DP求分拆数(五边形数定理)。
总结
这次比赛暴露了许多问题。
1.在想一道题时如果往一个方向想了很久也做不出来,不妨换个思路。
2.要积累一些常见的容易忽略的道路,如:差分,分块,二分答案等等。
3.在想到一个做法后不要轻易地否定这个做法,一定要确保这个做法一定是错的再扔掉。如果有时间不妨实现以下,可能修改一些小的细节之后就正确了。
4.其实第一点和第三点有一点矛盾,所以你要想规划好每道题要花多少时间去想。我给自己的时间是半个小时,想不出来/改不好就换题或换思路。
5.写题速度不够快,第三天出现了会正解但写不完的情况。
6.很多要取模的题可以在对拍的时候换一下模数(比如说换成特别小的模数),以检验是否有不该取模的地方加了取模,该取模的地方没有取模。
GDOI2018游记&题解的更多相关文章
- 「CSP-S」2019年第一届Day1游记+题解
「CSP-S」2019年第一届Day1游记+题解 Day 1 7:30 A.M. 8:10 A.M. 8:30 A.M. T1 格雷码 题目 考场经历+思考(正解) 8:50 A.M. T2 括号树 ...
- GDOI2018游记
前言 不知怎的,本蒟蒻居然拿到了GDOI参赛名额 于是乎,我稀里糊涂地跟着诸位大佬屁颠屁颠地来到了阔别已久的中山一中 腐败difficult and interesting的GDOI比赛就这样开始了. ...
- 2020.3.23 模拟赛游记 & 题解
这次的模拟赛,实在是水. 数据水,\(\texttt{std}\) 水,出题人水,做题人也水.??? 游记就说一句: 水. T1 metro 弱智题. 人均 \(100pts\). #pragma G ...
- P5290 [十二省联考2019]春节十二响
题目地址:P5290 [十二省联考2019]春节十二响 骗分方法 如果你实在一点思路也没有,暴力都不会打,那么请考虑一下骗分. 方法一 输出所有 \(M\) 的和. 期望得分:0分. 实际还有5分 方 ...
- NBL小可爱纪念赛「 第一弹 」 游记(部分题解)
比赛链接 洛谷:禁止含有侮辱性质的比赛 . ??? 反正我觉得,gyx挺危险的 不说废话. 首先,比赛经验,前几个小时不打,跟着刷榜. 一看 T1. 发现是道水题,直接切掉了. 然后看到了 T2. 感 ...
- NOIP2016游记(非题解)
去年的比赛现在来发是不是晚了. -------------------------------- Day1-白天 出发啦, 动车购票处一群丧病的又在玩售票机 动车上看到胡神打苍蝇 苍蝇打苍蝇 在车上颓 ...
- 「浙大ACM」图森未来杯游记一篇以及简易口胡题解
前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...
- CTSC2016&&APIO2016滚粗记&&酱油记&&游记<del>(持续更新)</del>
挖一波坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs. ...
- 2019余姚培训游记+ZJOJD2划水记
2019余姚培训游记 突然就想写一个... 注意:以下全是胡言乱语的自high,还有很多错别字 Day 0 来的比较早,早上就到了 上午把一本小说看完了,是一个年轻作者的处女作. 我觉得我第一本书一定 ...
随机推荐
- ArcGIS for JavaScript学习(一)
一 API准备 从网上下载开发包:ArcGIS for JavaScript(百度网盘地址) sdk中含有API的帮助和例子 2.离线部署(以IIS为例) 配置IIS(详见网络):解压离线包,包中的 ...
- ubuntu 通过apt安装jdk
需要先添加ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 安装jdk8 sudo apt-get instal ...
- bug优先级别
https://www.cnblogs.com/evablogs/p/6785083.html bug缺陷的优先级别 首先需要对一个版本进行冒烟测试,确定基本功能测试,如果不通过的话进行后期的测试已经 ...
- Delphi Record To Stream
type TUserInfo = record sUserId,sUserName:String; iUserCount:integer; end; procedure TForm1.Button1C ...
- Python装饰器、内置函数之金兰契友
装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种.所以也可以理解装饰器是一种特殊的函数.因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展, ...
- SQLServer之创建主XML索引
创建主XML索引注意事项 若要创建主 XML 索引,请使用 CREATE INDEX (Transact-SQL) Transact-SQL DDL 语句. XML 索引不完全支持可用于非 XML 索 ...
- 英语口语练习系列-C22-吃东西
基础词汇 1. bill [bɪl] n. 账单:钞票:法案:鸟嘴 Bill (人名)比尔 pay the bill 付账单 telephone bill 话费单 electricity bill 电 ...
- python中的struct模块的学习
由于TCP协议中的黏包现象的发生,对于最low的办法,每次发送之前让他睡一秒,然后在发送,可是这样真的太low了,而且太占用资源了. 黏包现象只发生在tcp协议中: 1.从表面上看,黏包问题主要是因为 ...
- [LeeCode]14. 最长公共前缀
题目链接:https://leetcode-cn.com/problems/longest-common-prefix/ 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀 ...
- Html 改变原有标签属性
内容简要: 当标签内内容 达到某以条件的时候改变当前标签属性 例如原标签为<tr> 当tr内的值符合某一条件时把<tr>变成<a>标签 例:当订单状体编程已支付的时 ...