其他分享
首页 > 其他分享> > 2021年8月14日 模拟赛

2021年8月14日 模拟赛

作者:互联网

只能说不知道自己在干些什么。

A. 世界线

std::bitset 被卡空间,考虑按编号分成两次做。

B. 欧拉回路

考场上的思路是按顺序画边,第 \(i\) 条边与第 \(1\sim i-2\) 边的本质不同交点数就是新增的面数。但是只有 \(80\) 分,看起来也不像是精度问题。

欧拉定理,\(v-e+f=2\)。

写个计算几何板子,求出所有线段相交的交点加上给出的顶点,去个重就是 \(v\)。

然后看每个点是否在某个线段上(不含线段顶点),如果是就会增加一条边。加上给出的边就是 \(e\)。

code

C. 光线追踪

只有矩形的左边界和下边界是有用的,并且可以将横着的和竖着的分开考虑,取更近的。

每条线段对应斜率上的一个区间,离线下来离散化,用线段树维护区间取 \(\min\),单点查询即可。

注意 \(x_0,y_0\) 等于 \(0\) 的情况。

code(1)

D. 是否

原题 AGC019F Yes or No

可以化为 \(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