数论
F-hwak
这个作者很懒,什么都没留下…
展开
-
hdoj 2841Visible Trees(容斥原理)
容斥原理原创 2014-11-25 10:59:08 · 762 阅读 · 0 评论 -
hdoj5072 容斥原理+三角形染色
#include#include#include#include#includeusing namespace std;typedef long long ll;const int N = 1e5+10;const int maxn = 100000;vector pri[N];ll cnt[N];void init(){ for(int i=0;i<=maxn;i+原创 2015-05-30 11:01:00 · 516 阅读 · 0 评论 -
HDU 1299 Diophantus of Alexandria
/*1/x+1/y=1/n 给你一个整数n,求x,y组合的个数(n式中有x,y两个变量,通过转化可以可以转化为一个条件假设y=n+m;则x的表达式为x=n*n/m+n;这个条件就是if(n*n%m==0)所以答案就是n*n的因子个数显然一般方法直接会超时的但是n的素因子很少 最大是sqrt(n);每个数都可以表示成素因子之积n=(prime[0]^ans[0])原创 2015-04-06 11:29:32 · 607 阅读 · 0 评论 -
hdoj 3270 置换群
题意: 给一个无序数组,通过一系列对换使之有序。对换的花费是对换两个数的和。问达到目标的最小花费。思路; 有两种操作:一是可以拿置换中的每一个元素和置换中最小元素依次对换;还可以拿置换中最小元素和序列中最小元素做一次置换,再进行第一种操作。#include#include#include#includeusing namespace std;int main(){原创 2015-03-30 14:11:05 · 466 阅读 · 0 评论 -
欧拉函数&&容斥原理
题意:给你五个数 a,b,c,d,在[a,b]闭区间找一个数x,再在[c,d]闭区间中找一个数y,使得(x,y)的最大公约数是k。请找出所有满足条件的不同(x,y)的对数。1:因为我们知道gcd(x/k,y/k)=1,重新定义两个区间[1,int(b/k]和[1,int(d/k)];2:找两个区间相互互质的就行了,假设b‘3:对于[b'+1,d']则需要用容斥原理,从该区间任取x,则需原创 2015-03-27 17:22:40 · 1067 阅读 · 0 评论 -
hdoj 1999 不可摸数
解析:这个题题意就是给一个数n,找到某个数(任何数)的因子和是否等于n;可以直接筛选来做也可以设输入n,因为1是所有数的约数,首先t=n-1;如果此时 t 为素数,则n一定能被找到,eg:t*t,由于t是素数,t*t 的约数有且只有1和t,所以成立。否则,如果 t 能表示为两个互不相等的素数的和,则n一定找到。eg:i 为素数且t-i 也为素数,则 i*(t-i原创 2015-03-09 11:01:45 · 401 阅读 · 0 评论 -
hdu 2204 Eddy's爱好 容斥原理
容斥原理原创 2014-12-03 11:58:30 · 854 阅读 · 0 评论 -
hdoj 1796 How many integers can you find(容斥原理)
题意:原创 2014-11-25 10:11:39 · 689 阅读 · 0 评论 -
hdu 4135(容斥原理)
题意:就是让你求(a,b)区间于n互质的数的个数.分析:我们可以先转化下:用(1,b)区间与n互质的数的个数减去(1,a-1)区间与n互质的数的个数,那么现在就转化成求(1,m)区间于n互质的数的个数,如果要求的是(1,n)区间与n互质的数的个数的话,我们直接求出n的欧拉函数值即可,可是这里是行不通的!我们不妨换一种思路:就是求出(1,m)区间与n不互质的数的个数,假设为num,那么我们的转载 2014-11-25 09:51:32 · 603 阅读 · 0 评论 -
hihocoder 第八十九周
Given an integer n(n样例:100 结果60分析:1、n = p1^n1 * p2^n2 * p3^n3 * ... * pk^nk MaxDivisors = (n1+1)*(n2+1)*(n3+1)* ... * (nk+1);2.在一个数范围之内,相对于因子个数最多的数来说,p越小,n越大才是最优的,同时可以优化剪枝 若p1=n2;#i原创 2016-03-19 12:04:49 · 351 阅读 · 0 评论