A
数据范围不大直接 std::pow()
然后强制转换即可。
但是关于这个函数还有一些值得一提的东西。
- 有一个叫做 隐式转换 的东西,它可能会导致你的
2.9999...
变成2
,所以进行一些比较,加减操作的时候一定记得自己强制转换或者 check 一下(之后会写一个关于隐式转换的笔记)。 - 直接用 pow 开根号会有比较明显的精度误差所以应该使用:
std::sqrt()
和std::cbrt()
,并且这三个函数默认返回其实是float
,数据范围较大时应考虑使用std::powl(), std::sqrtl(), std::cbrtl()
,返回long double
。
B
你这数据范围数据范围。
纯粹暴力。
C
一种想法是钦定最开始按的那一个然后暴力枚举接下来怎么操作,又是代码量会炸。
注意到 $3n$ 次以内如果无法完成那显然不行。
看到数据范围,可以考虑暴力一点,直接枚举每一行第几秒按了一下然后 check 是否合法即可。
注意要满足 $i, j, k$ 两两互不相等,这个在枚举的时候和 $i\neq j \neq k$ 是有区别的。
D
要读题!!!!
题中 The given information is consistent.
这句话意思是给出的信息不会矛盾。
一直以为是 “连续” 所以没读懂什么意思。
那随便 dfs 一下就完事了,记得建双向边。
E
注意到时间这个维度比较大,但是事件总量只有 $2\times 10^5$,所以需要把离散的事件压缩处理,不妨考虑用优先队列维护事件来模拟当前情况。对于当前的队伍也考虑用一个优先队列维护一下即可。
Copyright @Enonya, 转载请注明出处