摘要:
模板题,但是有大量重边和自环,数据很坑,需要加引用优化 #include<bits/stdc++.h> using namespace std; const int N=4e5+10; int h[100010],ne[N],e[N],idx; int ans[N]; int used[N]; in 阅读全文
摘要:
首先想到如果将mod的顺序变化了一下,如果答案肯定不变,那么所有数必须要是最小的数的倍数。并且题目已知数列递增。 这是因为如果模数没有倍数关系,这就会破坏模的数据,可以通过在纸上举例子得出 因此本题答案只跟最小的数有关,枚举最小的数,之后就是在倍数中取k-1个,根据逆元组合数预处理得解 #inclu 阅读全文
摘要:
本题是在DAG上求取最多的两两不相连的点 我们知道的是,所有某条路径上的点都是能看的见的 因此只有求出最小路径重复点覆盖,这样每条路径的起点就是不会被别的点走到,否则这条路径没有意义。 经过传递闭包后变成最小路径覆盖,而这个已经证明为总点数减去二分图的最大匹配(这个是特殊的,两方分别为出度和入度) 阅读全文
摘要:
比较容易看出是最小点覆盖问题,并且本题因为只有两种机器,所以是二分图问题,将对应的任务的两种机器连边 答案就是求取最大匹配数。 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m,k; int match[ 阅读全文