http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约数j 那么i*j一定是n*m的约数 d(nm)相当于不同的i*j 的个数 若i, j 不互质 设gcd(i,j)= g , 则 i= p*g ,j=q*g 那么i*j 可以 组成两个互质数p*g*g 和 q 的乘积 p*g*g 和 q 也都输n和m的约数 即p*g*g 和 q 也都是合法的i,j 所…
P3327 [SDOI2015]约数个数和 神犇题解(转) 无话可补 #include<iostream> #include<cstdio> #include<cstring> #define re register using namespace std; template<typename T>T max(T &a,T &b){return a>b?a:b;} template<typename T>T min(T &a…
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色之后,任意满足要求的四联通块一定可以是 黑色-->紫左-->紫右-->白色 只要破坏三个箭头中的一个即可 所以可以构建最小割模型 1.源点向黑色格连流量为格子代价的边 2.黑色格向相邻的紫色格连inf边 3.与黑色格相邻的紫色格向与白色格相邻的紫色格连 流量 为 两个紫色格较小代价 的边 4…
http://www.lydsy.com/JudgeOnline/problem.php?id=1053 求n以内约数个数最多的数 #include<cstdio> using namespace std; int n; int ans; long long tot; ]={,,,,,,,,,,}; void dfs(int now,long long sum,long long num) { ) return; if(sum>tot || sum==tot && num…
http://www.lydsy.com/JudgeOnline/problem.php?id=2813 若j能整除i,则f[j]能整除f[i] 题目就变成了求约数个数和.约数的平方和 http://www.cnblogs.com/TheRoadToTheGold/p/8228969.html 因为f[2]=1,所以奇数还要加上2的贡献 #include<cstdio> #include<iostream> using namespace std; #define N 100000…
Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M.   Output T行,每行一个整数,表示你所求的答案.   Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000   这篇blog讲得很不错http://blog.codebursts.co…
Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 解题思路: 有一个喜闻乐见的结论: ${\sum_{i=1}^{n}}{\sum_{j=1}^{m}}{d(i*j)]}={\sum_{i=1}^{n}}{\su…
http://www.lydsy.com/JudgeOnline/problem.php?id=1968 换个角度 一个数可以成为几个数的约数 #include<cstdio> #include<iostream> using namespace std; int main() { int n; ; scanf("%d",&n); ;i<=n;++i) ans+=n/i; cout<<ans; } 1968: [Ahoi2005]COM…
http://www.lydsy.com/JudgeOnline/problem.php?id=3993 二分答案 源点向武器连 mid*攻击力的边 机器人向汇点连 防御力 的边 武器i能攻击机器人j,i向j连 >=j防御力的边 判断最大流是否=防御力 将时间.防御力 * 10000,避免浮点数运算 #include<queue> #include<cstdio> #include<cstring> #include<iostream> using n…
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j 位置的数是区间[i,j]的最大值和次大值 提供p2的攻击力:i,j位置的数有一个是区间[i,j]的最大值,另一个不是次大值 记录L[i].R[i] 分别表示i左右第一个大于k[i]的位置 p1的贡献: 1.点对(L[i],R[i])    2.点对(i,i+1) p2的贡献: 1.点对(L[i],…