摘要:
CodeForces 337A给出n、m(n#includeusingnamespacestd;intmain(){inta[60],n,m;cin>>n>>m;for(inti=0;i>a[i];sort(a,a+m);intmin=1005;for(inti=0;iusingnamespacestd;intgcd(intx,inty){intr;while(y!=0){r=x%y;x=y;y=r;}returnx;}intmain(){inta,b,c,d,temp;cin>>a>>b>>c>>d;a=a*d;c 阅读全文
摘要:
A - HDU1372 Knight Moves搜索入门题1/*2搜索经典入门题3一个8*8的棋盘,给定起点坐标和终点坐标,求马(马走日)由起点到终点需要走多少步4广搜一遍即可5*/6#include7#include8#include9#include10usingnamespacestd;1112#defineN1013intans[N][N],vis[N][N];14//用于模拟马一步可能去的八个位置15intdir[9][2]={{-2,1},{-2,-1},{2,1},{2,-1},{-1,2},{-1,-2},{1,2},{1,-2}};16structNode17{18intx, 阅读全文
摘要:
【题意】给定一个双向连通的公路网,当某些公路路段检修的时候可能会由于该段公路不通,可能会使某些旅游点之间无法通行,求至少新建多少条公路,使得任意对一段公路进行检修的时候,所有的旅游景点之间仍然畅通。造成公路不通的原因是图中存在桥,所以题目要求的是添加最少条公路使图中不存在桥。1//3352Accepted228K32MSC++1333B2013-03-0709:54:552//利用low[i]缩点3#include<stdio.h>4#include<string.h>5#include<stack>6usingnamespacestd;7#defineN1 阅读全文
摘要:
【题意】选择去掉无向图中的某个点,使得无向图连通分支数最大,输出这个最大数。有三种情况:1、无向图无边时,最大数=点数-1;2、无向图有边并不存在割点时,最大数=原图连通分支数-13、无向图有边并且存在割点时, 求出去除某割点后,该割点所在连通分支被分解成的小连通分支的个数sub[i],找出max,则最大数=原图连通分支数+max-1。Tarjan算法求无向图的连通分支、割点及对应的sub[i]。View Code 阅读全文
摘要:
View Code1#include<stdio.h>2#include<string.h>34#defineN10105#defineMN*N67intlow[N],dfn[N],sub[N],index;8inttail[N],eNum;9structEdge10{11inte,next;12}edge[M];1314intMin(intx,inty)15{16if(x>y)returny;17returnx;18}19intMax(intx,inty)20{21if(x>y)returnx;22returny;23}24voidAdd(intx,int 阅读全文
摘要:
【题意】求sink点,即其可达的点均有一条路径回到该点,按序号升序输出。先求各强连通分量,出度为0的强连通分量中的点即为所求的sink点。(若出度不为0,即某强连通分量有向外的边,必没有“回”路,那么该强连通分量内的点均不是sink点)【代码】View Code 阅读全文