自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 POJ 2773 Happy2006 (容斥原理+二分/欧拉)

题目:http://poj.org/problem?id=2773给出m,k,求和m互质的第k个数。主要想学下容斥原理:思路就是tmp表示那找容斥:减去重复的,加上多见减的,减去多加的……比如m=12,k=5此时mid=13,不互素:2,3,4,6,8,9,10,12    不互素的数都是质因子的指数,以2为底的6个,3的4个,减去重复多数的即2*3=6的指数2个;

2017-10-26 23:59:24 198

原创 模板:莫比乌斯反演

如果有: F(d)=∑i|df(i)那么有: f(d)=∑i|dμ(i)F(di) 另一种形式是如果 F(d)=∑d|if(i)那么 f(d)=∑d|iμ(id)F(i)const int maxn=1e6+10;ll prime[maxn],mob[maxn],vis[maxn],cnt;void M

2017-10-25 23:53:45 213

原创 hdu 1695 GCD(莫比乌斯反演入门)

莫比乌斯反演优秀PPT讲解:点击打开链接【a,b】选一个x,【c,d】选一个y,使gcd(x,y)=k,求符合条件的gcd(x,y)对数。和上个gcd一样,变成【1,b/k】选x,【1,d/k】选y,使gcd(x,y)=1,这时可以用欧拉函数,但我们要用Mobius用莫比乌斯反演:主要是找出合适的f(i)和F(d);F(d)=∑d|if(i)例如1  5  1  6

2017-10-25 20:30:04 221

原创 bzoj 2818 GCD(欧拉函数)

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2818思路:求1数对(x,y)有多少对.可以写成求1数对(x,y)有多少对.这就成了x,y互质,于是 欧拉(y)就求出了与y互质的x个数,即(x,y)对数,i当然小于n,枚举每个i,即n/i,向下取整,把所有对应欧拉(y)求出,这里用前缀和处理即可。用线性筛数组改成

2017-10-25 11:02:41 240

原创 hdu 2588 GCD (欧拉函数)

题目:https://cn.vjudge.net/problem/HDU-2588gcd(x,n)>=m,设gcd(x,n)=i,所以有 i * a=x,i *b =n ;保证 i >=m,枚举 i 即可。但是数据太大,我们可以枚举符合条件的小于sqrt(n)的 i 即可,同时把 n / i 枚举出来由x#include#include#include#include#

2017-10-25 00:19:22 263

原创 51 nod 中国剩余定理

题目:点击打开链接前提是除数数组m[i]是两两互质的。x=a [ i ](mod m[ i ])     wi=M/mi,wi*Pi=1(mod mi)ans=a1w1P1+a2w2P2+……ajwjPj#include#include#include#include#define ll long longusing namespace std;const int ma

2017-10-23 22:48:58 206

原创 带提交: hdu 1573 X问题(一元同余方程组)

#include#include#include#define ll long longusing namespace std;void gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1;y=0;} else{ gcd(b,a%b,d,y,x);y-=x*(a/b);}}int n,N;ll a[100005],r[

2017-10-23 20:14:03 175

原创 POJ 2891 解线性同余方程组

大意:给出k个模方程组:m mod ai = ri。求m的最小正值。如果不存在这样的m,那么输出-1.思路:lcm是广义的,lcm(m1,m2)表示m1,m2序列的最小相等的值。。。。。。。算了,不会推导,直接用吧。#include#include#include#define ll long longusing namespace std;int n;ll a

2017-10-23 15:12:51 205

原创 POJ 2115(解线性同余方程)

注意:for(int i=2;i!=1;i++) 循环到 i 值溢出时,会重新从0开始加。#include#include#include#define ll long longusing namespace std;void gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1;y=0;} else{ gcd(b,

2017-10-23 13:08:27 185

原创 模板:数学2

中国剩余定理:

2017-10-22 00:43:19 166

原创 51nod 1119 机器人走方格V2(求组合数,费马小定理+快速幂/逆元+gcd)

额,,,走方格不是走边。杨辉三角形,从A出发到每个点的走法数等于它左边点和上边点的走法相加1  1  1    11  2  3    41  3  6   101  4    10    20可以看出结果为C(min(n-1,m-1),n+m-2 )     令m+n-2=m, m-1=n, 即c(n, m)=m!/((n-m)!*n!)%

2017-10-20 22:03:54 206

转载 模板:输入输出挂

ll read(){    ll x=0,f=1;char ch=getchar();    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}转载:...

2017-10-19 21:05:30 294

原创 51nod 1256 (最基础)乘法逆元

地址:点击打开链接给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input输入2个数M, N中间用空格分隔(1 Output输出一个数K,满足0 Input示例2 3Output示例2显然,这个式子

2017-10-19 20:41:27 229

原创 hdu 5597 欧拉函数+打表

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5597大意:给出一个函数,以其函数值为自变量求欧拉函数。打表:#include#include#define ll long longusing namespace std;ll f[1000000],C[1000000];ll N,x;ll solve(ll x){

2017-10-19 00:25:13 207

原创 模板:数学1

素数打表:const int maxn=1001005;int p[maxn]; //第 i 个质数bool pp[maxn]; //记录是不是质数int get_prime(){ int pnum=0; for(int i=2;i<=maxn;i++){ if(!pp[i]) p[pnum++]=i;

2017-10-18 19:21:11 193

原创 51 nod 质数中的质数

好讨厌这种题,又不得不练。。。#include#include#include#define long long llusing namespace std;const int maxn=1001005;int p[maxn]; //第 i 个质数bool pp[maxn]; //记录是不是质数int get_prime(){ int pnum=0;

2017-10-18 18:10:02 269

原创 3435==1853==3488 三连发

确实没啥意思,谢了份代码愣交,就是爽一爽,舒服点好去补一发 变5.。。#include#include#include#include#includeusing namespace std;const int maxn=200001;const int inf=0x3f3f3f3f;int n,m,ss,tt;int cost[100005];struct Edge{

2017-10-17 21:43:46 198

原创 hdu 3488 Tour (有向环最小权值覆盖,费用流)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=3488和1853一毛一样,再做一遍就是为了爽一爽,看了下评论区,秒a了。#include#include#include#include#includeusing namespace std;const int maxn=200001;const int inf=0x3f

2017-10-17 20:56:13 149

原创 hdu 1853 Cyclic Tour (有向环最小权值覆盖,费用流)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1853一开始没注意前提是点必须在环里,否则输出-1即可,半天没推出这个模型。做法:节点一分为二,第 i 个连源点,cost为0,flow为1,连对应的点+n,cost为权值,flow为1,第i +n点连汇点。#include#include#include#include#i

2017-10-17 17:44:14 173

原创 hdu 1533 going home(费用流初探)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1533题意:给出地图,求m到H的最小步数。费用流建图:加超级源点和汇点,m连ss费用0,连每个H,费用对应步数;H连 tt,费用0;#include#include#include#include#includeusing namespace std;const int

2017-10-17 13:20:31 125

原创 模板:费用流

刘汝佳紫书模板:const int maxn=10001;struct Edge//边{ int from,to,cap,flow,cost;//出点,入点,容量,当前流量,费用(也就是权值) Edge(int u,int v,int c,int f,int w):from(u),to(v),cap(c),flow(f),cost(w){}};struct MCMF

2017-10-16 22:16:42 227

原创 模板:最小割边数

做一遍最大流,满流设为1,其他为inf,再做一次最大流。注意方向边流量不清零。const int inf = 0x3f3f3f3f;const int maxn = 200 + 5;const int maxs = 3000 + 5;int n,m;struct Edge{ int from,to,cap,flow;};struct Dicnic{ int

2017-10-16 14:42:32 179

原创 hdu 6214(2017 Qingdao Online:最小割边数)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=6214求最小割边数:/*Dinic的判断是边上的flow加到cap,而不是减到0.下标从哪开始都行。*/#include#include#include#include#include#include#define mem(a,x) memset(a,x,sizeof

2017-10-16 11:38:38 252

原创 hdu 3987 最小割边数模板题

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=3987题意:n个数,m行。给出一张有n个点的图,1表示有向,0表示无向,现在要你破坏一些路,使得从点0无法到达点n-1。破坏每条路都有一个代价。求在代价最小的前提下,最少需要破坏多少条道路。(就是说求在最小割的前提下,最小的割边数)求最小割割的边数:跑一边最大流,满流的记为1,未

2017-10-15 21:14:31 412

原创 hdu 4859 海岸线(最小割)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=4859建模:一种新的建图思路周围加了一圈D,令D为奇," . "为偶,若D确实为奇,与ss连inf,若为偶,与tt 连 inf。“.”同理。然后与周围的点连 1 。尽量保持不变的代码习惯,最小割就从(1,1)开始建。#include#include#include

2017-10-15 19:09:06 182

原创 hdu 3657 Game(最小割,方格取数)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=3657比起3820简单多了,还是方格取数,奇偶建图,要求取的点连inf。不过貌似Dinic不能取重边,连inf时多建了边wa了,只好加一个flag数组。#include#include#include#include#include#include#define mem(

2017-10-14 23:33:13 201

原创 hdu 3820 Golden Eggs(最小割+SAP)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=3820这题目略难啊,一是建图,而是还要用SAP(没学过....)。题意:一个n*m的网格,放金蛋或银蛋,有各自对应的分数,相邻的颜色相同则要扣去对应分数,求最大分数。建图:还是奇偶建图,但要拆成两个点。奇点v:,,。与v相邻点u,。偶点u:<vs , u , mp2[i][j

2017-10-14 13:57:00 176

原创 模板:最大流最小割

讲解:https://wenku.baidu.com/view/d9c9b9220722192e4536f6e1.html    给出矩阵时,转换为边存入edges:#define mem(a,x) memset(a,x,sizeof(a))using namespace std;const int inf = 0x3f3f3f3f;const int maxn = 50 +

2017-10-12 12:45:55 205

原创 hdu 1569 方格取数2(网络流最小割)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1569和第一部一样,就是建图建错了,气死我了。。。给你一个m*n的格子的棋盘,每个格子里面有一个非负数。从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取数所在的2个格子不能相邻,并且取出的数的和最大。Input包括多个测试实例,每个测试实例包

2017-10-12 12:42:31 141

原创 hdu 1565 方格取数(神奇的最小割,模板题)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1565思路:最大流最小割:最大和=所有数之和—最小割(网络流)建图:奇数点连源点,然后连周围偶数点,偶数点连汇点。#include#include#include#include#include#include#define mem(a,x) memset(a,x,s

2017-10-12 12:24:30 343

原创 hdu 3046 喜羊羊和灰太狼(最大流最小割初入)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=3046最大流最小割:容量(正向割边之和)最小的割边就是最大流,仍然利用最大流解决问题。https://wenku.baidu.com/view/d9c9b9220722192e4536f6e1.html    讲的很详细易懂。羊和狼分别占一个格子,问至少多少栏杆把狼围住。将格

2017-10-11 18:14:41 177

原创 模板:bellman-ford算法

思路:n-1次:找1 到剩下的n-1个点的最短路,因为是依次找的,所以是累加,dist【n】所以可以表示1 到n的最短路注意:负权双向路径本来就是负权环用于:1:找带负权的最短路 2:找负权环若找正环,dist改为-inf,u+w,最好把flag优化去掉const int maxn=105;const int maxm=maxn*maxn/2;const int inf=

2017-10-10 21:58:12 175

原创 hdu 1317 XYZZY(bellman + Floyed)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1317题意:初始值100,每个房间有正值或负值,加上每个值,每个房间可以走好多次,看最后走到n是否为0。保证每次到房间都>0。分析:有正环即一定可行,用bellman-Ford判断正环,改一改即可,dist改为-inf,u+w0即可。    用Floyed判断环和n是否联通。/*

2017-10-10 21:42:01 160

原创 UVa 10048 Audiophobia(Floyed变形)

/*+改为max,想想就想过来了,要存最大噪音,但要找最小的路径。*/#include #include #include #include #include using namespace std;const int maxn=105;const int inf=1000000;int d[maxn][maxn];int n;void Floyed(){ for

2017-10-09 23:39:53 101

原创 UVa 247 电话圈(Floyed判环)

Calling CirclesTime Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %lluSubmitStatusDescriptionIf you've seen television commercials for long-dist

2017-10-09 22:10:37 306

原创 模板:Floyed

Floyd可以判断有向环,并查集只能判断无向环。for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(d[i][j]<inf&&d[k][j]<inf) d[i][j]=min(d[i][j],d[i][k]+d[k][j]);如果只关心是否

2017-10-09 21:31:49 186

原创 C++ 函数

count():返回这个值出现次数。还可以在一个范围里。count(ivec.begin() , ivec.end() , searchValue)头文件:algorithm

2017-10-09 21:01:17 130

原创 POJ 3259 虫洞(bellman-Ford)

题意:农田上有N块田地,M条路径,M行代表双向路径,W行代表虫洞,单项路径。问能不能从某地出发回到某地,使回来时间早于出发时间。#include #include #define inf 1000000using namespace std;const int maxn=502;const int maxm=5210;int n,m,w,num,dist[maxn];s

2017-10-09 10:56:20 235

原创 C++ this

this:指向对象的指针。this->s=s;参数与成员变量相同时,要这么用才能赋给成员变量。http://www.cnblogs.com/liushui-sky/p/5802981.html

2017-10-08 20:04:51 210

原创 模板:最大流

Edmonds-Karp:先BFS从起点开始的路径中找最小的容量,找到这么一条路径,到 t 截止。update更新残存容量和运输流量,加到max_flow里,再继续BFS找路径,update,直到没有路径能到 t 了,返回0;edmonds-karp返回最大流。const int maxn=500;const int INF=2110000000;int visited

2017-10-08 17:30:15 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除