07 2014 档案
摘要:#include#include#include#includeusing namespace std;const int VM=220;const int EM=50010;const int INF=0x3f3f3f3f;int n,m,src,des,map[VM][VM],dis[VM][V...
阅读全文
摘要:原来这个代码超时#include#include#includeusing namespace std;#define N 200#define inf 0x3fffffffint cap[N][N];int fee[N][N];int s,t,sum,pre[N];int spfa() {qu...
阅读全文
摘要:转载地址:http://www.cnblogs.com/Griselda/archive/2012/09/17/2689345.html题意:给出每个人适合住的星球信息和该星球能住多少人 第一行给出n m 代表有 n 个人 m 个星球然后接下来n行每行m个数字 1代表适合第 i 个星球 0 代表不适...
阅读全文
摘要:/*因为n非常大如果正常建边的话会超内存,每种状态的数目共2……10种状状体记录起来,源点与状态建边权值为状态数,状态与星球建边,星球与汇点建边*/#include#include#includeusing namespace std;#define inf 0x3fffffff#define N ...
阅读全文
摘要:#include#include#includeusing namespace std;#define inf 0x3fffffff#define N 4000struct node {int u,v,w,next;}bian[N*N*4];int head[N],yong,n,s,t;void i...
阅读全文
摘要:/*先求出双联通缩点,然后进行树形dp*/#include#include#include#define inf 0x3fffffff#define N 11000struct node{ int u,v,next;} bian[N*4],edge[N*4];int head[N],yong...
阅读全文
摘要:#include/*要善于挖掘隐含条件dis[v]-dis[u]>=bian[i].w;一个条件(u,v,bian[i].w);dis[i+1]>=dis[i];隐含条件(i,i+1,0);dis[i+1]-dis[i]=dis[i+1]-1;(i+1,i,-1);>=求最大约束条件,求最长路.#i...
阅读全文
摘要:/*先走一遍dfs找到每个点到他的子节点的位置,回溯的时候找到最大值和次大值再用一个dfs来更新值,先看是否是u最长路上的点,如果是的话用最大值+权值更新最大值和次大值,否则的话用次大值+权值更新最大值和次大值*/#include#include#define N 11000struct node...
阅读全文
摘要:#pragma comment(linker,"/STACK:102400000,102400000")//总是爆栈加上这个就么么哒了#include#include#includeusing namespace std;#define N 210000#define inf 99999999str...
阅读全文
摘要:/*以核心1为源点,以核心2为汇点建图,跑一遍最大流*/#include#include#includeusing namespace std;#define N 21000#define inf 999999999struct node {int u,v,w,next;}bian[N*40];in...
阅读全文
摘要:我用临接表模拟容器超时#include#include#includeusing namespace std;#define N 110000vectorq[N];int f[N];int main() { int t,n,m,i,j,k,a,b; scanf("%d",&t); whi...
阅读全文
摘要:/*一组测试实例4 4 23 12 4*/#include#include#includeusing namespace std;#define N 31000struct node {int u,v,next;}bian[N*10];int head[N],yong,indegree[N],n,f...
阅读全文
摘要:几个比较好的博客http://www.renfei.org/blog/isap.htmlhttp://kenby.iteye.com/blog/945454http://blog.csdn.net/mypsq/article/details/37959249#include#include#incl...
阅读全文
摘要:http://www.renfei.org/blog/isap.html算法与数学网络流-最大流问题 ISAP 算法解释2013-08-07Renfei Song 2 条评论内容提要 [隐藏]1 约定2 引入3 算法解释4 实现ISAP 是图论求最大流的算法之一,它很好的平衡了运行时间和程序复杂度...
阅读全文
摘要:#include#include#define N 1100struct node {int u,v,next;}bian[N*N*2];int head[N],dfn[N],low[N],index,cut[N],yong,visit[N],dd[N],len,vis[N];void init(...
阅读全文
摘要:#include#include#define N 11000/*去掉一个割点后,询问可以分得的联通图的个数*/struct node {int u,v,next;}bian[N*100];/*cut数组记录去掉某个节点后可以增加的联通分支的个数,num数组记录以i为根节点的联通图的元素的个数*/...
阅读全文
摘要:http://blog.csdn.net/lyy289065406/article/details/6756821http://www.cnblogs.com/wuyiqi/archive/2011/10/19/2217911.html#include "stdio.h"#include "stri...
阅读全文
摘要:#includeint main() { __int64 n,m,k,i,j,a,b; while(scanf("%I64d%I64d%I64d",&n,&m,&k)!=EOF) { if(n+m-2n) { a=n; b=k+2-n; } i=(n/a)*(m...
阅读全文
摘要:#include#define mod 1000000007int main() { __int64 n,m,i,j,k,x,y,z; while(scanf("%I64d%I64d%I64d",&x,&y,&n)!=EOF) { z=y-x; i=n%3; j=n/3; i...
阅读全文
摘要:/*1A 31ms*/#include#include#define N 300int n;struct node {int u,v,next;}bian[N*N*2];int color[N],vis[N],link[N],visit[N],ma[N][N],f[N],head[N],yong;v...
阅读全文
摘要:鉴于网上讲交叉染色的资料比较少,于是我把我自己的心得与方法贴出来,方便与大家共同进步。二分图:百度百科传送门wiki百科传送门判断一个图是否为二分图可以用交叉染色的方法来判断,可以用BFS,也可以用DFS,这里我用使用DFS来实现。思路:任意取一个点进行染色,如果发现要涂某一块时这个块已经被涂了色,...
阅读全文
摘要:/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树找叶子节点的个数*/#include//用容器写在3177这个题上会超内存,但是用临界表过了#include/*此代码为临界表代码*/#define N 5100struct node {int u,v,nex...
阅读全文
摘要:#include/*求边双联通分量和求强连通差不多,先缩点求出叶子节点的个数*/#include#define N 5100struct node {int u,v,next;}bian[N*4];int dfn[N],low[N],head[N],index,cnt,yong,stac[N],s...
阅读全文
网上有一种错误的做法是:因为每一个双连通分量内的点low[]值都是相同的,则dfs()时,对于一条边(u,v),只需low[u]=min(low[u],low[v]),这样就不用缩点,最后求度数的时候
摘要:
阅读全文
摘要:#include#include#define N 1100000int isprim[N],prime[N];void isprime() { int i,j;memset(isprim,-1,sizeof(isprim)); isprim[1]=0; for(i=2;i<=1000;...
阅读全文
摘要:为什么写这道题还是因为昨天多校的第二题,是道图论,HDU 4612。当时拿到题目的时候就知道是道模版题,但是苦于图论太弱。模版都太水,居然找不到。虽然比赛的时候最后水过了,但是那个模版看的还是一知半解,主要还是对于无向图缩点不了解。所以今天特意找了道求无向图边双连通分量,然后缩点的题学习一下,这道题...
阅读全文
摘要:/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树找叶子节点的个数*/#include#include#define N 1100int top[N],ma[N][N],dfn[N],low[N],index,f[N][N],n;int Min(int a,i...
阅读全文
摘要:#include#include#define N 21000struct node {int u,v,next;}bian[N*3];int head[N],dfn[N],low[N],index,vis[N],stac[N],top,yong,cnt,suo[N],indegree[N],out...
阅读全文
摘要:有向图的的情况比较简单只有一种强连通,重边和连向自己的边对于强连通都没有任何影响无向图的双连通要分点双连通(biconnected)和边双连通(edge_biconnected),连向自己的边对于俩种双连通也没有任何影响,但是重边对点双连通没有影响,但是对于边双连通有影响,因为在求边双连通时,要求对...
阅读全文
摘要:双连通分量分类: 文摘 2011-10-16 10:22 1393人阅读 评论(0) 收藏 举报算法存储[点连通度与边连通度] 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义...
阅读全文
摘要:http://blog.csdn.net/geniusluzh/article/details/6619575在说Tarjan算法解决桥和边双连通分量问题之前我们先来回顾一下Tarjan算法是如何求解强连通分量的。 Tarjan算法在求解强连通分量的时候,通过引入dfs过程中对一...
阅读全文
摘要:http://blog.csdn.net/xinghongduo/article/details/6202646黑书上给出了关于求点割集的算法,但是比较模糊,我查阅了网络上的相关资料,理解了求点割集的过程,写出如下求点割集的代码,并写了一些简单的证明. 割点集的定义:如果在连通图G中去掉某一点后图不...
阅读全文
摘要:#include#include#define inf 999999999#define N 1100struct node {int u,v,w;}edge[11000];int visit[N],dis[N],id[N],pre[N],yong,n,index;void addedge(int...
阅读全文
摘要:#include#define ll long long/* 2.那么x,y的一组解就是x1*m1,y1*m1,但是由于满足方程的解无穷多个,在实际的解题中一般都会去求解x或是y的最小正数的值。以求x为例,又该如何求解呢?还是从方程入手,现在的x,y已经满足a*x+b*y=m,那么a*(x+n*b)...
阅读全文
摘要:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。c++语言实现#include#includeusingnamespacestd;intx,y,q;voidextend_Eulid(inta,intb){...
阅读全文
摘要:#include#include#define N 51000#define inf 1000000000struct node { int u,v,w,next;}bian[N*2];int dfn[N],low[N],yong,index,ans[N],visit[N],head[N],s...
阅读全文
摘要:http://baike.baidu.com/view/5944982.htm?fr=aladdin图很重要本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!最小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权...
阅读全文
摘要:#include/*思路:显然对于每个地方,只有一种供水方式就足够了,这样也能保证花费最小,而每个地方都可以自己挖井,所以是不可能出现无解的情况的,为了方便思考,我们引入一个虚拟点,把所有自己挖井的都连到这个点,边权为挖井的花费,而如果i能从j处引水,则从j向i连边,边权为引水的花费,然后对这个有向...
阅读全文
摘要:#include#include#define N 3100int a[N],b[N],c[N],d[N],e[N];int main() { int n,i,j,k,t; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a));memset...
阅读全文
摘要:#include#include#define N 21000struct node {int v,next;}bian[51000];int yong,dfn[N],low[N],stac[N],top,index,visit[N],ans,flag,mark[N],head[N],pre[N];...
阅读全文
摘要:先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;log10(1.0234432)就是log...
阅读全文
摘要:#include#include#include#define inf 0x3fffffff#define N 200#define eps 1e-10#includeusing namespace std;struct node { int x,y;}ma[N];struct nodee {in...
阅读全文
摘要:要求从键盘输入给定文件的路径,要求将他中的内容读取出来并输入到你需要建的一个文本文档中还要从键盘输入到建的一个文本文当中#include int main(){ FILE *fp,*fpp; int c; char filename[40]; printf("请输入路径及其文件名: ");gets(...
阅读全文
浙公网安备 33010602011771号