20261015 - 图论……?不,是建图 总结
前言
区成区了。
一个人均题做 1h,我还有救吗?
我右边的和我右边的后面的都是 dsa,只有我是 qu。

我一定要变成区!
D - Sum of Three Terms
罚时原因:
- 误判
-1。 - 调整方案不完善。
我是区。
E - Good Set Query
罚时原因:
- 没开
long long。
我是区。
F - Pay or Receive
首先 nan 的情况很好判,不在一个连通块里就输出 nan。
但是剩下的呢?我们发现出现 inf 也就是代表出现正环,正环倒着走就是负环(因为是无向边),所以唯一可行的是 \(0\) 环(和滚木没有区别)。环基本会导致 inf 掉,如果没有环的话路径唯一,直接 bfs 就可以了。
我还额外写了个并查集,或许没什么必要。
我是区。
H - Min of Restricted Sum
罚时原因:
- 思路错误,没有拆二进制位。
- 搜的时候没有搜一个连通块就取 \(\min\) 处理(实现细节错误)。
我是区。
I - Graph
容易发现对于一个连通块,确定了一个点的值就可以确定整个连通块的值。我赛时直接枚举值乱搞在 cf 上获得了 58pts。
那么这种形式我们就容易想到列方程去解这个东西,随便设连通块里的某个点为 \(x\),可以推出其他所有点的值,均可表示为 \(Ax+B\) 的形式。
如果在搜的时候搜回了搜过的点,令其为 \(ax+b\) 和 \(Ax+B\),如果 \(a=A\) 但 \(b\not=B\) 那么直接无解,输出 NO 后 exit(0); 掉;如果 \(a=A\) 且 \(b=B\) 那么这个信息没用;否则 \(a \not= A\),因为 \(ax+b=Ax+B\),所以可以直接解出来 \(x=(b-B) \div (A-a)\),注意大小写顺序是反的哦!
但是如果解不出来怎么办呢?这个时候我们可以转化 \(Ax+B\) 这个形式变成 \(|x-C|\),根据绝对值的几何意义,结合我们小学二年级就学过的零点分段,可以轻松发现对 \(C\) 取中位数就是最优的 \(X\)。
这样得到了 \(X\)(不管是解出来的还是取中位数算出来的)之后就可以 BFS 重新填充答案了。填充答案的时候也要记得判断一下无解情况喔!
代码实现有一定的难度,但还好。
总结
D 浪费的时间有点多,其他倒是还好,F 的性质没观察到有些可惜。
我好区呀。
我是区,大家猜猜我是区的原因,第一,我是区,第二,我是区,第三,我是区,第四,我是区,第五,我是区,第六,我是区,第七,我是区,……
csp rp ++

浙公网安备 33010602011771号