20261015 - 图论……?不,是建图 总结

前言

区成区了。

一个人均题做 1h,我还有救吗?

我右边的和我右边的后面的都是 dsa,只有我是 qu。

我一定要变成区!

D - Sum of Three Terms

罚时原因:

  1. 误判 -1。
  2. 调整方案不完善。

我是区。

E - Good Set Query

罚时原因:

  1. 没开 long long。

我是区。

F - Pay or Receive

首先 nan 的情况很好判,不在一个连通块里就输出 nan。

但是剩下的呢?我们发现出现 inf 也就是代表出现正环,正环倒着走就是负环(因为是无向边),所以唯一可行的是 \(0\) 环(和滚木没有区别)。环基本会导致 inf 掉,如果没有环的话路径唯一,直接 bfs 就可以了。

我还额外写了个并查集,或许没什么必要。

我是区。

H - Min of Restricted Sum

罚时原因:

  1. 思路错误,没有拆二进制位。
  2. 搜的时候没有搜一个连通块就取 \(\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 ++

posted @ 2026-10-15 15:49  嘎嘎喵  阅读(35)  评论(0)    收藏  举报