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