8:00−8:308:00-8:308:00−8:30
看题,感觉 T3T3T3 用 bfs 可水。
8:30−9:208:30-9:208:30−9:20
先搞 T2T2T2 的 202020 分,深搜枚举每一种可能出现的情况。
9:20−10:509:20 - 10:509:20−10:50
写了个 T1T1T1 的模拟,然后有了思路。读入后有 排序,查找时能 二分,而且气球破了后相当于删除操作,首选 set
啊。 然后写了个 对拍 和 跑数据代码 ,开始磕 正解 。感觉真的能搞出来。判断沿着当前方向能不能找到一个气球,找的时候用 stl
中的 二分 套到set
上用,每找到一个后放进队里面,队有多长,答案就是多少。
然后 set
方面有个很焦灼的地方,得开成大小为 10610^6106 的 set
数组。小的样例还得跑 300+ms300+ms300+ms , 333 个询问去掉俩还是那么长时间,气球数量减少一般还是那么长时间, set
数组的大小开小一点还是时间上就会减少很多,然后就想着要不要开小点数组,稳点拿 808080 分。set
费我 300ms300ms300ms ,题上说读入也得 200ms200ms200ms ,相当于只有 0.5s0.5s0.5s 的做题时间。肥肠害怕。
中间写的时候还忘了 lower_bound
和 upper_bound
哪个是找大于,哪个是找大于等于。
10:50−11:4010:50-11:4010:50−11:40
搞 T3T3T3 ,本来想 bfs 来跑,但是没有一下搞出来,就搞了个 dijkstra
,跑完后 dfs
验证路径,然后输出答案。感觉真往正解上靠还得写类似高精 mod
的东西,(不过还好模数是 int
以内的,其他方面要是都能处理好的话,应该问题不大)。
11:40−结束11:40-结束11:40−结束
T4T4T4 输出 −1-1−1 ,然后检查 freopen
,文件名,版本。
T1T1T1 现场 AAA 掉了,不过队列好像是不必要写的了。时限开成了 3s3s3s 也没有被卡,还好没有把 set
开小。当时还想着会不会有人为了卡时间搞出来 二维线段树 ,或者 二维树状数组 之类的奇怪操作。
T2T2T2 的 202020 分写挂了,还没查出来是为什么,把 int
全换成 long long
的话从 WAWAWA 变成了 TLETLETLE。正解的话应该算是有贪心的思想,如果 iii 个人的情况下就跟风,那就让他们跟风,如果没有跟风的,就找最便宜的收买。按照跟风人数,从多到少看着收买。有个很好的部分分的点是倒着来 fi,jf_{i,j}fi,j表示在后 iii 个人当中收买了 jjj 个的最小花费。
考场上确实这样想了,但是没有处理出来,准确说是没有试着去写。用 堆 就很好搞了。血亏了属于是。double kui 了属于是。
T3T3T3 大意了,应该直接存成 string
类型,也正好有了按照题意比大小的功能。