【游记】THUWC2018踹线记
Day1。
早上九点多报道,然后就是试机。一开始有一些懵,没看清门外的通知,操作起来各种懵逼。不过提前适应过了在Linux下面编程,所以问题不大。调了gedit的界面,试了一下对拍,敲了一道试机题,然后就跑了。(其实过程中不小心踹了一次脚下的电源线)
午餐还是可以的,红烧肉很好次啊。
比赛是一点半开始,中午没怎么休息,导致下午开场一直犯困,半梦半醒中把所有的题目看了一遍。揉了揉眼睛再看T1,画风不对啊?这是……贪心?排一发序模拟一下就可以了吧。敲完之后顺手写了个对拍,没出错就交了,一发过PT,极其舒服。
T2很想写线段树合并(不会dsu on tree),但是思路卡住了。就在这时候,电脑突然黑屏,心里咯噔一跳。定睛一看,不知不觉中我又踹了一次电源线。听见监考的小哥哥一直在喊着,“请各位选手注意脚下的电源线”,心里对自己不老实的脚感到相当绝望。然后又抓起纸质版题面(草稿纸)开始继续思考T2,脑袋里突然灵机一动,这道题是不是可以写点分治呀?每一次限定根结点必选,然后根据点的颜色一路dfs下去。但是我不会处理与根结点颜色相同的那一堆东西啊……算了,先打40分暴力。拿到了想拿的分数之后就跑去看T3了。
T3大概是有结论的,但我推不出细节。想写后缀自动机,又不知道从何入手。果然还是自己菜啊……最后用string打了个15分的暴力。想再骗|b|=1的10分,因为某些奇怪的原因迷之挂了,最终还是没有骗到 。
然后,接下来两个小时碌碌无为,怒肝T2肝不出。Day1PT分数:100+40+15=155。觉得自己好凉啊……大家是不是都200+啊。
出来之后问了一下,T1基本大家都会吧。T2听说了很多种写法,点分治、树形dp、线段树合并、dsu on tree都有,我好菜啊。T3好像PT太弱,15分的暴力过40,50分的暴力过100,不知道数据是不是也这么弱呢。不管了,Day1凉凉,明天加油!
(然后晚上就躲在阅览室的角落里打起了generals)
Day2。
早上吃完早餐就去校门口拍照,照片拍完就是开营仪式,看见了跟KPM同队的小哥哥。(哈哈哈KPM被我们拉回去给师弟师妹讲课啦)
中午回宿舍休息了一下,下午很早就到了考场。结果考试推迟到了两点,头晕晕的,还是滚去阅览室玩手机吧。一点四十分进入考场,尬坐了一会儿,敲了一个fhq-treap的板子,然后比赛就开始了。
先把题目全都看了一遍,看完T1顺手敲了一个15分的暴力交上去。T2的话……看着有点懵,容斥+dp?不管了先打一个10分的暴力。T3工业题,资料太长了,有时间再回来看吧。
然后接下来就开始了肝T1的心酸历程。
第二眼……倍增?倍增怎么写呀,推了大概半个多小时,还是毫无头绪。就在这时候,抬起头一看,电脑又黑屏了。怕不是又踹到了电源线……插头没插好,前前后后折腾了快十分钟。低下头继续思考,十五分钟之后抬起头发现电脑又黑屏了。一场比赛踹了这么多次电源线,我也是……算了不管了,调整好心态继续肝T1呀。 突然之间又灵光一闪,这道题好像可以写平衡树?开场的fhq-treap可以派上用场了。于是把开场敲的板子整过来,根据题目开始瞎改。一小时之后一拍桌子,样例过了!不对,还有大样例……突然又挂了呀。然后就开始疯狂调试,在调试过程中纠正了许多小错误。(样例真的良心)不知不觉中又过了一小时,两个样例都过了,交他一发!屏住呼吸看着分数在那里跳,看到accepted的时候整个人都开心了起来。
然后,还有一些时间……T2打表找一下规律好了,没准能骗个30分。看了半天依旧茫然,最后的时间里又是一事无成。Day2PT分数:100+10+0=110。(大家好像都在肝T3?)
出来之后发现T1写法跟大家好像都不一样……大家写的都是倍增,没有人写平衡树。大概介绍一下自己的写法吧……
题意:给定n个点,从左到右1~n编号,li为编号i的点与编号为i+1的点之间的路径长度,每个点有一个加油单价pi。油箱上限V,移动1个单位长度需要消耗1单位的油量,油量为0时无法继续前进。给定m次询问,每次给定起点si、终点ti(保证si<ti)和初始油量vi,每次输出到达终点的最小花费。(n、m<=1e6,V<=1e18)
我的写法:
先讲15分暴力吧……倒着贪心。
对于询问的终点T,从终点出发,倒着往回维护一个栈,栈里包含两个元素,价格p以及对于价格p需要加的油量d。其实栈里维护的就是从当前点到终点过程中的加油点以及在每个加油点所加的油量,使得到达终点代价最小。这样每往回走一个点,就可以很方便的在栈中进行修改,维持最优策略。而每往回走一个点,计算出在当前这个点需要加多少油的方式如下:假设当前在点x,x至x+1这一段默认由点x供应,即需要往油箱里加入d=lx的油。此时最多仍可在点x继续添加V-lx的油,即对于之前的决策,凡是距离栈顶油量小于等于V-lx且价格高于px的部分,都可以用px替换掉。将可以被替换部分的油量累加进d,最后把d与px丢进栈顶。而对于初始油量,由于其价格为0,所以可以直接去掉栈里距离栈顶油量小于等于初始油量的部分,然后统计整个栈里p*d的总和,即为答案。
复杂度显然是不对的,所以可以利用平衡树进行优化,我选择了fhq-treap。而平衡树里的顺序,从小到大对应栈顶到栈底,保存着p(价格)、d(要加的油量)以及sum(子树内p*d的和)。
首先离线所有询问,把所有询问按照起点从大到小排序,钦定终点为n。同时需要预处理出dis数组,disi代表点1到点i的距离。查询到一个询问时,先将信息更新到其起点si处。更新方式如下:先分裂出平衡树中前V-lsi部分的信息,在其中查询p>psi的部分(易证,对于前V-lsi部分,p呈单调递减,所以最后用来替换的一定是一段前缀),然后分裂出来,在剩余部分的最左边插入一个新的结点(p为psi,d的统计方式如上),将其与剩余的非前V-lsi部分的信息合并起来,完成更新。而对于查询,先分裂出前disti-dissi部分的信息,再在这部分信息中分裂掉前vi(即初始油量)部分的信息,中间vi+1至disti-dissi部分的sum即为答案,查询完合并回去就好了。
晚上在阅览室里写自我介绍……能不能进面试仍然是未知数。但听说进了面试就有THUSC的门票,很舒服。希望如愿吧。
Day3。
宣布面试名单时真是紧张刺激,字典序就很难受了。我几乎是倒数被念到的,听到名字的时候整个人都开心得快要跳起来了。
等面试的过程是很无聊的,不能玩手机,什么也不能干,于是我发呆发了四个半小时,到下午一点多才轮到我面试。一开始的兴奋啊、激动啊,全被磨平了。等待的过程中YJQ大爷进来讲了一下题,脑子晕晕的也不是很听得进去。
面试的过程磕磕绊绊,我的对面坐着三个老师。首先是自我介绍,简单的个人信息什么的先介绍一下,然后是竞赛经历。因为没什么好讲的,所以只能瞎扯淡。“我是高一开始接触信息学的,当时什么也不知道,是被一张宣传单骗进了信息班。可能这也算是一种缘分吧……”然后我就看见对面的老师笑了起来,心情也渐渐放松了一些。之后就开始扯一些课余的兴趣爱好什么的,最后再夸一夸清华。老师发问了,“你刚刚提到了一个细节,有许多师兄来到了清华,那么,有没有师姐呢?”“竞赛方面的话目前没有。”“那现在你们学校的学习信息学的女孩子呢,只有你一个吗?”我简单地回答了一下情况,然后老师就继续问:“那你怎么看待这个问题呢?”我就回答了一大堆什么兴趣原因,氛围原因,各种原因巴拉巴拉,最后总结一句我认为OI与性别并没有什么多大的关系。老师也没有继续追问这个问题,然后接下来我就被数学题考倒了……更迷的是还有英文朗读!我磕磕绊绊地把文章读完,一边读一边想着要凉了要凉了,一边后悔平时打cf开翻译时没有顺便查读音。
面试完出来已经很晚了,吃完午餐就匆匆跑去听讲座。而更紧张刺激的宣读签约名单的环节很快就到来了,虽然不抱什么希望,但心里还是莫名紧张。又是字典序。听着听着突然听到了熟悉的名字,是学校的一位高一大佬。HR好强啊。然而心里也默默紧张了起来。等等,刚刚……念了我的名字?
我无法形容我那时候的心情,真的感觉跟在做梦一样。恍恍惚惚填了资料交上去,看着手里的省队一本约,才感觉到一切都是在真实发生的。
何等幸运。
接下来的三个月,更要好好加油。不管是为了自己,为了身边人的期望,还是为了更遥远的未来,我都必须好好努力。希望三个月之后,我能笑着把这份约实现!
Zsnuo加油!
【游记】THUWC2018踹线记的更多相关文章
- THUWC2018滚粗记
THUWC2018滚粗记 前言 又是一篇滚粗记, 不过可能还要写过很多很多篇滚粗记, 才会有一篇不是滚粗记的东西啦 总而言之,我现在还是太菜了 还要过一大段时间我才会变强啦 Day -inf 联赛考完 ...
- 【比赛游记】NOIWC2019冬眠记
上接THUWC2019酱油记. 贴一点文艺汇演的精彩表演: https://www.bilibili.com/video/av42089198/ https://www.bilibili.com/vi ...
- 【比赛游记】NOI2019打铁记
上接 NOIWC2019冬眠记.(THUPC,CTS,APIO)2019四连爆蛋记 和 THUSC2019酱油记. Day0.5 笔试 AK 是容易的. 国家队选手见面会太好玩了啊! Day1 Day ...
- 【比赛游记】THUSC2019酱油记
往期回顾:THUWC2019酱油记 时间过得真快呐-- 上次在 THUSC 手玩 AI 的情景还未走远,明天却要迎来全新一年的赛事了-- 掐指一算,作为一个真正的 OIer 的时光也不多了啊 day ...
- CSP-S 游记(算是AFO记 8)
Day-1 没什么好写的,还是一道题还是能调半天的状态 Day 0 假装出去旅游,结果公交车开了三个小时,状态直接爆炸 晚上颓了一下,最后还是 10 点睡的...真的当成是旅游了吧,只有到了比赛的时候 ...
- 【比赛游记】THUWC2019酱油记
往期回顾:THUSC2018酱油记 day 0 早上 7 点的动车,不知道是从哪儿到哪儿的(雾),只知道从福建到广东 233333 一个值得思考的问题:福建人会不会被广东人吃啊? 动车上玩空洞骑士,可 ...
- THUWC2018爆0记
Day-2 心里想到要明天就要出发,去长沙膜拜各省dalao,心里挺激动,, 细细整理着行囊 Day-1 一觉睡到天明,正好是星期一,大家都要上课,也没怎么听物理老师讲什么. 到了9:30,就背着包拖 ...
- THUWC2018 暴力+爆炸记
Day 0 没有Day0. Day 1 签到然后去宿舍,环境还行,比某偏远山区要强多了,不过这热水有点难拿??看RP有遇到煮好水的饮水机就拿,没有就苟矿泉水. 中午,那个餐还是挺好吃的,不过餐费40就 ...
- 【游记】NOIP2015造纸记
题目来自HZWER学长的名言:“虽然已经做好了学OI就是打铁的准备.” 然后我发现我已经不是打铁,只能造纸了啊_(:3LZ_) [DAY0] 中午吃了饭才1:00,说好2:30才出发于是各种闲逛.2: ...
随机推荐
- 牛客OI周赛7-提高组 B小睿睿的询问(ST打表)
链接:https://ac.nowcoder.com/acm/contest/371/B来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小睿睿想知道 ...
- 20165223《JAVA程序设计》第一周学习总结
20165223 <JAVA程序设计>第一周学习总结 教材学习内容总结 通过网站JAVA第一章视频教程.教材.老师所给的教程及网上查询进行学习 第一章要点 JAVA地位和特点 地位:网络. ...
- 使用指针来实现变长数组(VLA)
实现代码: #include <cstdio> #include <cstdlib> void usePtoImplementVLA(int SIZE) { scanf(&qu ...
- window无法启动mongodb服务:系统找不到指定的文件错误的解决方法
原文:http://www.phperz.com/article/15/0530/131534.html 错误描述 错误2:系统找不到指定文件 思考过程 昨天做测试的时候,先后安装了两次MongoDB ...
- height、clientHeight、offsetHeight、scrollHeight、height()、 innerHeight()、outerHeight()等的区别
1.height height是css属性,这个属性定义元素内容区的高度,在内容区外面可以增加内边距.边框和外边距. 当 box-sizing: content-box 时,高度应用到元素的内容框. ...
- (转)轻松学,Java 中的代理模式及动态代理
背景:讲到反射机制,肯定会想到动态代理. 轻松学,Java 中的代理模式及动态代理 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强.值得注意的是,代理类和被代理类应该 ...
- react-native中的触摸事件
移动应用上的用户交互基本靠"摸".当然,"摸"也是有各种姿势的:在一个按钮上点击,在一个列表上滑动, 或是在一个地图上缩放.React Native 提供了可以 ...
- PHP中防止SQL注入
防止SQL注入,我们需要注意以下几个要点: 1.永远不要信任用户的输入.对用户的输入进行校验,可以通过正则表达式,或限制长度:对单引号和 双"-"进行转换等. 2.永远不要使用动态 ...
- mongoDB-权限控制
启动服务D:\MongoDB\Server\3.6\bin>mongod.exe --dbpath D:\MongoDB\Server\3.6\data 扩展 无认证启动:mongod --po ...
- DK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME
根据提示,我们可以新建一个项目或者以前自己使用过没问题的工程,从中把local.properties文件copy到我们从github中想要导入的工程中,我自己就是这样的,然后这个问题就解决了. ndk ...