gcd
文章平均质量分 77
冷月残星
这个作者很懒,什么都没留下…
展开
-
gcd,枚举,数学(高速公路,uva 1393)
枚举所有类型的对角线,计算出每种对角线的总个数,注意不要重复计算。包围盒这个思想很不错。先算总的,再减去重复的。因为总的也好算,重复的也好算。 #include #define maxn 310 using namespace std; int n,m; int GCD[maxn][maxn]; int gcd(int a,int b) { return a%b==0?b:g原创 2016-10-22 09:09:02 · 328 阅读 · 0 评论 -
欧拉函数,筛法(最大公约数之和——极限版II,UVA 11426)
看到数据范围,大概就知道是O(nlogn)了。 然后一开始尝试用筛法来做,有一些细节没办法处理好,想要处理好至少要O(n^2logn),还不如O(n^2)。 注意啊我的方法是错的,只是讲一下,别看。 我的方法就是ans[j]表示∑gcd(i,j),i 然后s[i]=s[i-1]+ans[i]。 s[n]就是答案。 怎么求ans[j]呢。就是用筛法。 因为 an原创 2016-11-17 20:18:57 · 753 阅读 · 0 评论 -
莫队算法,gcd(The sum of gcd,HDU 5381)
有一个小失误,WA了很久。 转移的顺序应该是 ①增加r ②减少l ③减少r ④增加l 否则可能会出现错误 比如想从[a,b]转移到[c,d] 但是c 如果顺序不对的话,按照我自己的算法,就会算错。 代码 #include #include #include #include using namespace std; typedef long long ll;原创 2017-07-16 11:20:45 · 235 阅读 · 0 评论 -
LCT(GCD Tree,HDU 5398)
值得注意的是,千万别把LCT的结构当成真实的树的结构。 题目链接:https://vjudge.net/problem/HDU-5398 就是要快速求两点间路径上距离最短的边。 比如求u和v。 那就先mroot(u),使u成为根。 然后再access(v),打通u,v之间的路径,使得u和v在同一棵Auxiliary Tree中。此时u是第一个值,v是最后一个值。这棵A原创 2017-07-21 19:41:23 · 273 阅读 · 0 评论