gcd
文章平均质量分 77
冷月残星
这个作者很懒,什么都没留下…
展开
-
gcd,枚举,数学(高速公路,uva 1393)
枚举所有类型的对角线,计算出每种对角线的总个数,注意不要重复计算。包围盒这个思想很不错。先算总的,再减去重复的。因为总的也好算,重复的也好算。#include#define maxn 310using 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 · 344 阅读 · 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 · 782 阅读 · 0 评论 -
莫队算法,gcd(The sum of gcd,HDU 5381)
有一个小失误,WA了很久。转移的顺序应该是①增加r②减少l③减少r④增加l否则可能会出现错误比如想从[a,b]转移到[c,d]但是c如果顺序不对的话,按照我自己的算法,就会算错。代码#include#include#include#includeusing namespace std;typedef long long ll;原创 2017-07-16 11:20:45 · 254 阅读 · 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 · 302 阅读 · 0 评论