ARC200 A~C
ARC200 A~C
数学思维场,数学不好的有福了,喜提 -60
Problem A. A - Dot Product
观察样例,发现有无解。设 \(C_i=\dfrac {A_i}{B_i}\),手磨一下,如果 \(C_i\) 全部相同,那么 \(B\) 总和一定是 \(A\) 总和的正整数倍,也就是二者一定同正同负。
这启发我们,构造过程中我们应该是需要一组 \((i,j)\),满足 \(C_i\neq C_j\)。
\(n\) 个元素太难做了,试试 \(2\) 个元素。设它为 \((i,j)\)。
现在我们需要找到 \(X_i,X_j\),满足 \(A_iX_i+A_jX_j>0,B_iX_i+B_jX_j<0\)。
变形得到 \(\dfrac {B_i}{B_j} < -\dfrac{X_j}{X_i}<\dfrac {A_i}{A_j}\)。取 \(X_i=A_j+B_j,X_j=-(A_i+B_i)\) 可以成立,前提是 \(\dfrac {B_i}{B_j} < \dfrac {A_i}{A_j}\),即 \(C_i>C_j\)。
于是找到这样的 \((i,j)\) 就做完了。
Problem B. B - LCM
下面称 \(A_1=A,A_2=B,A_3=C\)。
首先排除掉无解的情况:\(\max(A,B)>C\) 和 \(A+B<C\)。
然后开始打表,发现有这样几组特殊的:
3 3 4
100 990 9900
3 4 5
100 9900 99900
3 4 6
100 9999 999900
4 4 5
1000 9900 99000
4 4 6
1000 9990 999000
由对称性设 \(A\leq B\)。可以构造 \(X=10^{A-1},Y=10^{B}-10^{B-C+A-1}\)。
我们令 \(X=10^{A-1}\),\(Z\) 为 \(C-A+1\) 个 \(9\) 和 \(A-1\) 个 \(0\)。那么 \(Y\) 就应该是 \(C-A+1\) 个 \(9\) 和 \(B-C+A-1\) 个 \(0\)。
但是当 \(A+B=C\) 时这个方法行不通。继续打表,\(\gcd(10^A-1,10^B-2),\gcd(10^A-2,10^B-1)\) 至少有一个是 \(1\),直接输出即可。
Problem C. C - Movie Theater
考虑两个线段 \([L_i,R_i],[L_j,R_j]\)。设 \(i\) 的长度大于 \(j\)。
分三种情况:
- 二者无交集,无需考虑;
- 二者相交但不包含,固定产生 \(1\) 的贡献;
- \(j\) 包含于 \(i\),我们需要 \(P_j<P_i\)。
所以我们只有一种限制:若 \(j\) 包含于 \(i\),则 \(P_j<P_i\)。
\(j\) 向 \(i\) 连有向边,形成一张 DAG。转化为求 逆排列字典序最小 的拓扑序。
由字典拓扑原理,其等价于在反图上求字典序最大的拓扑序。优先队列维护,\(O(n^2\log n)\)。

浙公网安备 33010602011771号