摘要: 代码如下 cpp include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int n, m; cin n m; vector a(n + 1); vector adj(n 阅读全文
posted @ 2019-03-16 23:04 shellpicker 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个点,M 条边的有向图,第一问求至少从多少个点出发才能遍历整个有向图,第二问求至少在这个有向图的基础上加多少条边才能使得该无向图强连通。 题解:先进行 Tarjan 缩点,得到一个 DAG。对于这个 DAG 来说,第一问显然是入度为 0 点的个数。第二问中的每条新边均应该是在 阅读全文
posted @ 2019-03-16 23:03 shellpicker 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 存在负环,即:执行 spfa 算法时,一个点被更新了 N 次或 N 次以上,那么一定存在负环。由于无向图任意两点间的简单路径经过的边数均小于 N,且 B F 算法在第 i 轮迭代结束时可以求得经过不超过 i 条边得到的单源最短路。因此, 在 N 1 次迭代时一定可以将所有点的最短路均求出。 更高效率 阅读全文
posted @ 2019-03-16 22:11 shellpicker 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定四个数字 a,b,c,d,求满足 $gcd(a,x)=b,lcm(c,x)=d$ 的 x 的个数。 题解: 解法1:根据 lcm 的性质,x 一定为 d 的约数。因此,直接枚举 d 的约数,并判断是否满足上述条件即可,时间复杂度较高。 解法2:解法一中直接枚举约数会导致有大量不满足条件 阅读全文
posted @ 2019-03-16 17:42 shellpicker 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 $N using namespace std; int n,cnt[15]; long long ans,sum; int p[11]={0,2,3,5,7,11,13,17,19,23,29}; void dfs(int now,long long val,long long su 阅读全文
posted @ 2019-03-16 16:20 shellpicker 阅读(178) 评论(0) 推荐(0) 编辑