SNOI2019场外VP记

教练突然说要考一场别省省选来测试水平...正好还没看题那就当VP咯w...

Day 1

八点开题打 .vimrc.

先看了看题目名...一股莫名鬼畜感袭来...

怎么T1就是字符串鸭?HEOI 2019 D1T2的心理阴影为啥我会xjb套那么多东西上去啊QAQ...T2数论T3通信? 不好的感觉...

读了读T1, 神仙字符串排序, 溜了溜了

读了读T2, 模两个模数同余? 溜了溜了...

读了读T3. 诶这个东西怎么这么费用流啊? 看看数据范围...诶这个 \(n\) 才 \(1000\) 啊? \(n^2\) 条边暴力建图信仰一发是不是就可以了鸭?

等等好像有 \(80\%\) 的数据 \(n\le300\), 这个数据范围费用流好像稳稳啊? 赶紧码...

\(20\texttt{min}\) 之后码了个费用流板子码得真慢, 一遍把样例A穿了, 爽翻.

交上去之后回去看T1.

冷静分析了一波, 发现好像和某道要花式求后缀数组的题很像, 对原串求个SA然后分段求LCP来得到两个要排序的串的第一个不同字符的位置, 这样就可以 \(O(1)\) 比较两个串了. 能比较之后丢到 std::sort 里这题就做完了.

这才是T1嘛233

码了半拉小时之后Pretest Passed.

这时候时间过去 \(90\texttt{min}\), 当时我就觉得我稳了, 于是上了个厕所准备正面刚T2.

思考了一会之后感觉除了知道这东西有个长度为 \(\operatorname{lcm}\) 的周期之外就啥也不知道了.

那个 \(\operatorname{lcm}(P,Q)\mid T\) 的部分分好像明示要先想想一个周期里的情况...还能有啥啊? \(\operatorname{lcm}(P,Q)=\frac{PQ}{\gcd(P,Q)}\)?

等等分母是 \(\gcd\)?

想起「Bézout's Lemma」

也就是说只有 \(A_i\equiv B_j\pmod{\gcd(P,Q)}\) 才会存在某个 \(x\) 满足 \(x\equiv A_i\pmod P\) 以及 \(x\equiv B_j\pmod Q\) 咯?

\(P\) 和 \(Q\) 除掉 \(\gcd\) 之后就互质了, 根据CRT这个差除以 \(\gcd\) 的值是有唯一解的? 也就是说一个循环里 \(A_i\) 和 \(B_j\) 相遇且仅相遇一次咯?

感觉挺靠谱的, 好像能拿 \(40\) 分了. 这样的话就可以把 \(T\) 模掉一个 \(\operatorname{lcm}\) 了. 问题只剩剩下的值了qwq...

好像搞出关键结论了正解也不远了? 是不是把一个 \(\gcd\) 长度的块看成一个整体然后再给这些块按照另一个模数的访问顺序排成一个环然后直接在这个环上二分就可以了得到 \(<T\) 的匹配数了鸭?

YY了一下好像以 \(O(n\log n)\) 的圆满复杂度解决了这个问题. 虽然感觉超级难写但是还是作死开始写.

写了一个多小时果然弃疗了, 删掉了二分的部分改成暴力从 \(0\) 到 \(T\bmod \operatorname{lcm}\) 枚举了.

剩下的时间摸掉了.

出分, \(100+80+80=260\)? 啥玩意?

怎么这个T2数据可以这么水啊...是不是故意构造的鸭...

校内rk3, 前面是两个 \(280\) 的神仙.

hahamengbier&Jumbo用KM二分图最大权匹配碾掉了T3还顺手拿了LOJ榜一.

神仙hzoizcl用玄学NTT干掉了T2...wtcl...

看了看noi.cn的成绩公示好像已经上队线了?(woc我也想去SN了码单)

Day 2

由于前一天题比较水于是莫名感觉能上400(flag)

开题.

淦哦怎么上来就开始麻将计数了? 跳跳跳...

跳到T2之后看见配图感觉一阵更浓的鬼畜感袭来...

T3是啥神仙数据结构趴? 等等这个 \(5\times 10^6\) 好像数据结构不太会能做鸭? 算了打个暴力跑路趴T_T...

完蛋, 二试被翻盘的节奏不对啊反正day1就已经上队线了我慌什么快醒醒你不在SN这不是你的省选

虽然这个T2看上去就很坑而且没有部分分, 可是我偏要玩玩(提答多好玩鸭)

玩了一会, 好像只要 o 不在该在的位置都可以用一步移动让两个坏块成为好块?

诶好像一直这么翻可以把所有联通的坏块都干掉啊? 那我是不是翻完一整块找下一个整块就可以了?

走过去产生的新坏块好像会在fix旧坏块的时候顺便fix掉? 那岂不是稳稳了?

是不是得找最近的鸭? 脑抽感觉找最近的好像得用k-DTree...算了趴...

于是YY了一个智障寻路算法, 每次找坏块集合里的第一个然后在所有可行走路方案中选最接近那个坏块的.

感觉好难写好难写, 于是回去搞T1.

大力猜测了一波, 看了看这个数据范围感觉怕不是对于 \(n\times C\) 的情况有 \(O(1)\) 式子...诶然后再补集转化一下用 \(O(XC)\) DP出选少了的情况是不是就可以了啊?

头铁搞了一会 \(O(1)\) 式子把自己搞自闭了.

搞 \(O(1)\) 式子的时候感觉这东西好像只判合法性, 也就是说可以用顺子把模 \(3\) 不同余的部分搞掉然后剩下的填刻子?

诶那我是不是可以用DP在状态里记录一下最后两个编号分别有几个顺子没有完成就可以转移了鸭?

好像状态只有⑨种? 那把转移写成矩阵然后分段快速幂一下不就是个⑨题咯?

时间复杂度是啥啊...\(O(X\times 9^3\log n)\)? 好像 \(X\le 1000\) 很靠谱的样子.

感觉超好写, 于是就开始码, 码完又把Pretest A穿了...

交上去之后开始搞T2, 码了一个多小时码出来了, Pretest弱的不行直接就过了, 手捏了一组坏块不连通的数据也过了.

交上 T2 的时候已经 \(11:20\) 了, 感觉不太能写 T3 状压于是就写了个 \(d=n-1\) 的sb \(10\) 分.

剩下时间又双叒叕摸掉了

出分, \(100+10+10=120\), 大家 T2T3 都是暴力分233

看了看T2代码发现我调试用的 if(++cnt>2)exit(0); 没删...白扔 \(10\) 分.

神仙 Asttinx64 T2 写了一堆 lambda 于是编译超时保龄了...再加上 static 的debuff好像LOJ上也保龄了...(去掉 static 就A了, 太强辣!)

校内排名又是rk3 qwq...

两天总分 \(380\).

跑到noi.cn上查了查SN的成绩, 发现这分可能稳A类? 怎么这个ranwen才365啊

下来翻了翻LOJ的AC代码, 发现好像只要把那个找下一个坏块的过程改成DFS就星了...我太菜了QAQ...

所以麻麻我要去SN

[日常] SNOI2019场外VP记的更多相关文章

  1. [日常] HEOI 2019 退役记

    HEOI 2019 退役记 先开坑 坐等AFO 啥时候想起来就更一点(咕咕咕) Day 0 早上打了个LCT, 打完一遍过编译一遍AC...(看来不考这玩意了) 然后进行了一些精神文明建设活动奶了一口 ...

  2. Codeforces Round #485 Div. 1 vp记

    A:对每种商品多源bfs一下每个点到该商品的最近距离,对每个点sort一下取前s个即可. #include<iostream> #include<cstdio> #includ ...

  3. 日常工作问题解决:记一次centos7上的lvm表错误解决过程

    问题描述: 公司大数据hadoop2服务器采用电信云服务器,后来故障,电信恢复该服务器,需要重新部署程序,需要扩展lvm分区,但是使用pvsan命令发现有报错信息,需要解决以防重启后,因挂载问题,无法 ...

  4. Accounting_会计电算化工作指南

    会计电算化工作指南 会计电算化实施的内容目标及原则 企业会计电算化的实施,也就是企业建立会计电算化的整个过程,是一项复杂的系统工程.在整个系统的实施过程中,包括会计电算化工作的规划,会计信息的建立与管 ...

  5. [日常] NOIWC 2018爆零记

    开个坑慢慢更(逃 (然而没准会坑掉?) day 0 大概 $8:30$ 就滚去雅礼了qwq 过去的时候发现并没有人...进报到处楼门的时候还被强行拍照围观了一波OwO 然后就领了HZ所有人的提包和狗牌 ...

  6. Java练习 SDUT-2737_小鑫の日常系列故事(六)——奇遇记

    小鑫の日常系列故事(六)--奇遇记 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 今天,小鑫在山上玩的时候,意外被推下 ...

  7. [日常] PKUWC 2018爆零记

    吃枣药丸...先开个坑... day -1 上午周测...大翻车... 下午被查水表说明天必须啥啥啥...(当时我差点笑出声) 晚上领到笔记本一枚和一袋耗材(袜子) 然而班会开太晚回去没来得及收拾就晚 ...

  8. [日常] NOIP 2017滚粗记

    突然挑了这么个滑稽的时间补了游记... (成绩日常延时再加上人太菜估计基本上就是颓废记录) 然而文化课太废可能会被强制退役QAQ所以先补了再说吧 day0 一大早被老姚交代了个开十一机房门的任务... ...

  9. 日常记Bug

    前记:后端写代码应该对数据的交互更加掌握,不要被编码.数据模型细节坑住 Unicode编码.Django数据迁移偶尔产生的不稳定 处理细项工资记录模型: class TeachRoll(models. ...

随机推荐

  1. JavaWeb 增删改查功能

    1.今天来写一个简单的增删改查功能,这个项目还是接着在昨天写的 --JavaWeb实现简单登录注册-- 来写的. 登录成功进来后对学生信息的增删改查 2.项目文件为: 3.好了,直接贴上今天新写的代码 ...

  2. 【2019.10.7 CCF-CSP-2019模拟赛 T3】未知的数组(unknown)(并查集+动态规划)

    预处理 考虑模数\(10\)是合数不好做,所以我们可以用一个常用套路: \(\prod_{i=l}^ra_i\equiv x(mod\ 10)\)的方案数等于\(\prod_{i=l}^ra_i\eq ...

  3. promise 极简版封装

    Promise 优点: 解决回调地狱, 对异步任务写法更标准化与简洁化 缺点: 首先,无法取消Promise,一旦新建它就会立即执行,无法中途取消; 其次,如果不设置回调函数,Promise内部抛出的 ...

  4. golang数据结构之利用栈求计算表达式(加减乘除)

    例如:3+2*6-2 先定义两个栈,一个为数值栈,一个为运算符栈: stack.go package stack import ( "errors" "fmt" ...

  5. JavaScript:了解一下函数式编程

    一.简介 在JavaScript中,函数就是第一类公民,它可以像字符串.数字等变量一样,使用var修饰并作为数据使用.它可以作为数值.可以作为参数.还可以作为返回结果.可以说JavaScript就是函 ...

  6. selenium元素定位方法之轴定位

    一.轴运算名称 ancestor:祖先结点(包括父结点) parent:父结点 preceding:当前元素节点标签之前的所有结点(html页面先后顺序) preceding-sibling:当前元素 ...

  7. 定位表和索引使用的Page

    数据存储的基本单元是Page,每个Page是8KB,数据文件(mdf和ndf)占用的硬盘空间,逻辑上按照PageNumber进行划分,也就是说,可以把数据文件看作是PageNumber 从0到n的连续 ...

  8. oracle学习笔记(十二) 查询练习(二) 高级查询

    高级查询练习 /*--------------------------------------------- 分组查询 -------------------------------------*/ ...

  9. python基础(11):函数(一)

    1. 什么是函数 1.我们到⽬前为⽌,已经可以完成⼀些软件的基础功能了.那么我们来完成这样⼀个功能: 约会: print("拿出⼿机") print("打开陌陌" ...

  10. 用Python在Excel里画出蒙娜丽莎

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 麦麦麦造 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...