2021年8月14日 模拟赛
作者:互联网
只能说不知道自己在干些什么。
A. 世界线
std::bitset
被卡空间,考虑按编号分成两次做。
B. 欧拉回路
考场上的思路是按顺序画边,第 \(i\) 条边与第 \(1\sim i-2\) 边的本质不同交点数就是新增的面数。但是只有 \(80\) 分,看起来也不像是精度问题。
欧拉定理,\(v-e+f=2\)。
写个计算几何板子,求出所有线段相交的交点加上给出的顶点,去个重就是 \(v\)。
然后看每个点是否在某个线段上(不含线段顶点),如果是就会增加一条边。加上给出的边就是 \(e\)。
C. 光线追踪
只有矩形的左边界和下边界是有用的,并且可以将横着的和竖着的分开考虑,取更近的。
每条线段对应斜率上的一个区间,离线下来离散化,用线段树维护区间取 \(\min\),单点查询即可。
注意 \(x_0,y_0\) 等于 \(0\) 的情况。
D. 是否
可以化为 \(n\times m\) 网格图上从 \((n,m)\) 走到 \((0,0)\)。
首先一定有贪心的策略,每次猜剩余个数更多的。
那么就是所有 \((0,0)\to (n,m)\) 的路径,每条路径与红边相交有 \(1\) 的贡献,与蓝边相交有 \(\frac{1}{2}\) 的贡献。
红边一定会相交 \(\max(n,m)\) 条。
蓝边可以考虑每条边的贡献,组合数计算经过这条边的方案数。
标签:code,14,线段,蓝边,每条,相交,交点,模拟,2021 来源: https://www.cnblogs.com/renamoe/p/15142580.html