摘要:
这是道坑比数论题。 它是如此的坑以至于我没法写上过程 (太长了) 过程:大佬 代码: 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 long long x,y; 5 long long a,b; 6 void exg 阅读全文
摘要:
链接:P3383 这道题考的是一个线性筛,主要有两种:埃氏筛和欧拉筛 先说埃氏筛,埃氏筛很简单。只要检查每一个数。如果他是没有被标记,就证明他是一个质数。这样我们就需要把他的每一个数标记为合数,然后重复 极为简单 1 #include<bits/stdc++.h> 2 using namespace 阅读全文
摘要:
链接:P1195 这道题第一眼肯定能想到最小生成树,不过最小生成树最后就成了一个连通块。 哎,最后?我们想一下卡鲁斯卡尔算法,是一次加上一条边,而且这边的两端不再一个联通块中。 也就是说,我们的每一次操作,就相当于消除了一个连通块。 这样,我们在最后留下k个联通块不就可以了? 1 #include< 阅读全文
摘要:
链接:P3379 【模板】最近公共祖先(LCA) 这道题我们要用到一种很神奇的东西,倍增。 首先,我们考虑一下最简单的做法,记录深度。然后先让询问的x,y中深度大的点往上爬,直到两个点深度一样结束。 然后两个点同时开始爬,当两个点相等时,就一定是公共祖先了 但是一个一个爬太慢了,怎么办呢? 我们就会 阅读全文