08 2012 档案
POJ 1321 棋盘问题
摘要:大意:给你一张棋盘,给你一定的棋子,空白区域不能放,问最多可能有几种方法。思路:典型的搜索题目。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=80;intv[SIZE];charmaze[SIZE][SIZE];intn,k;intcnt;voiddfs(intr,intnum){if(num==k){cnt++;return;}if(r>n)return;for(inti=0;i<n;i++){if(!v[i]&a
阅读全文
Hdu 1217 Arbitrage
摘要:大意:通过货币的兑换去套利,若能套利则输出Yes,否则输出No。思路:通过Floyd算法算出的d[i][i]即每种货币能不能套利,只要存在一种则输出Yes。数据的处理通过STL中的map容器去处理。CODE:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<map>usingnamespacestd;constintSIZE=34;doubled[SIZE][SIZE];map<string,int>hash; //ma
阅读全文
Hdu 2601 An easy Problem
摘要:思路:i * j + i + j------> (i + 1) * (j + 1) = N+1----> 2 <= i+1 <= sqrt(N+1); (0 < i <= j)CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;intmain(){intT;scanf("%d",&T);while(T--){inti,j;__int64N;intcnt=
阅读全文
Hdu 2680 Choose the best route
摘要:题意:求一个集合到另一个集合的最小路径。思路1:直接用循环T次Dijkstra算法,从而求得最小值,但是TLE了。后来加一个添加一个新的源点,把起点与源点路径的赋值为0就可以啦。条件:(1)有向图。(2)T次Dijkstra可能会超时。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=1010;constintINF=0x3f3f3f3f;intd[SIZE],v[SIZE];intw[SIZE][SIZE];intsave[SIZ
阅读全文
Hdu 1407 测试你是否和LTC水平一样高
摘要:无聊写写,注意X,Y,Z都不能为0。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;intmain(){intn;while(~scanf("%d",&n)){inti,j;intflag=0;for(i=1;i<=100;i++){for(j=1;j<=100;j++){intdif=n-i*i-j*j;doubleans=sqrt(dif);if(ans==0)cont
阅读全文
Hdu 1548 A strange lift
摘要:题意:有一个建筑有N层,里面有一架电梯。给你一个起点层数和一个终点层数。在每一层都有一个按钮,按钮上面有一个数字,表示可以上或者下Ki层。然后你可以由起点开始选择上或者下(重复……),当你到达终点为止(或者不可能到达终点为止)。求你需要按按钮的次数,不能到达则输出-1。思路:这道题可以转换为一道最短路题目,对第i层,按钮数字为k[i],则如果满足相加<=N,则把i到i+k[i]的路径长度设为1(巧妙将按钮次数转换为路径长度),同理,相减如果满足>=1,则把i到i-k[i]的路径长度设为1.则最后输出终点的最短路的长度即可。注意:(1)有向图。(2)可走的范围别越界。CODE:#in
阅读全文
Hdu 1142 A Walk Through the Forest
摘要:题意: 给定一个无向图n*n(m),求从出发点1到终点2中符合以下条件的路径数目。 <条件:若该路径上的任意段(A,B):满足B到终点的最短距离比A到终点最短距离要短(即d[A]>d[B])则选择B>思路:Dijkstra+dfs记忆化路径搜索 。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<limits.h>usingnamespacestd;constintSIZE=1001;constintINF=0x3f3f3f3f;intw[SIZ
阅读全文
PKU 1840 Eqs
摘要:与杭电1496类似,都是通过hash+枚举做的。CODE:#include<stdlib.h>#include<stdio.h>#include<string.h>usingnamespacestd;constintSIZE=25000000;charhash[SIZE+1];constintN=SIZE/2;intp[100];intcalCube(intx){returnx*x*x;}intmain(){inta1,a2,a3,a4,a5;while(~scanf("%d%d%d%d%d",&a1,&a2,&a
阅读全文
ACM队员应掌握的知识及POJ 题目推荐(转)
摘要:ACM队员应掌握的知识及POJ 题目推荐(转) 图论 拓扑排序 有向无环图与动态规划的关系 二分图匹配问题 一般图问题与二分图问题的转换思路 最大匹配 有向图的最小路径覆盖 0 / 1矩阵的最小覆盖 完备匹配 最优匹配 稳定婚姻 网络流问题 网络流模型的简单特征和与线性规划的关系 最大流最小割定理 最大流问题 有上下界的最大流问题 循环流 最小费用最大流 / 最大费用最大流 弦图的性质和判定组合数学 解决组合数学问题时常用的思想 逼近 递推 / 动态规划 概率问题 Polya定理计算几何 / 解析几何 计算几何的核心:叉积 / 面积 解析几何的主力:复数 基本形 点 直线,线段 多边形 凸多边
阅读全文
康托展开公式
摘要:康托展开:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!ai为整数,并且0<=ai<i(1<=i<=n)应用实例:{1,2,3,4,...,n}的排列总共有n!种,将它们从小到大排序,怎样知道其中一种排列是有序序列中的第几个?如 {1,2,3} 按从小到大排列一共6个:123 132 213 231 312 321。想知道321是{1,2,3}中第几个大的数。这样考虑:第一位是3,小于3的数有1、2 。所以有2*2!个。再看小于第二位,小于2的数只有一个就是1 ,所以有1*1!=1 所以小于32的{1,2,3}
阅读全文
Hdu 1496 Equations
摘要:hash,不会。CODE:#include<stdio.h>#include<string.h>inthash[2000000];constintN=1000000;intp[100];voidinit(){for(inti=1;i<=100;i++)p[i]=i*i;}intmain(){init();inta,b,c,d;inti,j;while(~scanf("%d%d%d%d",&a,&b,&c,&d)){if((a>0&&b>0&&c>0&&am
阅读全文
Hdu 1385 Minimum Transport Cost
摘要:最短路径+路径保存+字典序。由于这都是模板题,多练就行。今天下午不知道为什么感觉比较忧伤,可能是因为想起了那女生吧,弄得我魂不守舍的。过去了就真的永远回不去了。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=1001;constintINF=0x3f3f3f3f;intd[SIZE][SIZE];intpath[SIZE][SIZE];inttax[SIZE];intn;voidFloyd(){inti,j,k;for(i=1;i
阅读全文
Hdu 1162 Eddy's picture
摘要:最小生成树。CODE:#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<climits> //INT_MAX,整形范围内的最大整数。#include<algorithm>usingnamespacestd;#defineINF0x3f3f3f3fconstintSIZE=110;doublew[SIZE][SIZE];doubled[SIZE];intv[SIZE];intn;structnode{doublex,y;}a[S
阅读全文
Hdu 2112 HDU Today
摘要:最短路径题,题意简洁,思路清晰,不过WA了N次。(1)许多细节没处理好。(2)字符串的处理不到位,后来是看了别人的解题报告才用的map过的。(3)可能存在起点与终点相同的情况,而且不能直接输出0,必须用标记,因为可能数据还没处理完。CODE:#include<stdio.h>#include<map> //map容器#include<stdlib.h>#include<string.h>usingnamespacestd;#defineINF0x3f3f3f3fconstintSIZE=155;intw[SIZE][SIZE];intv[SIZE
阅读全文
Hdu 3665 Seaside
摘要:最短路径问题,Floyd算法。英文较难看懂,数据处理比较困难。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=101;constintINF=0x3fffffff;intn;intd[SIZE][SIZE],sea[SIZE];voidFloyd(){inti,j,k;for(k=0;k<n;k++)for(i=0;i<n;i++)for(j=0;j<n;j++)if(d[i][j]<=INF&&a
阅读全文
Hdu 1301 Jungle Roads
摘要:题意简洁,最小生成树问题。通过Prim算法求解,数据的处理有点困难。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=110;constintINF=0x0fffffff;intw[SIZE][SIZE];intv[SIZE],d[SIZE];intn;intPrim(intsrc){inti,j;inttot=0;memset(v,0,sizeof(v));for(i=1;i<=n;i++)d[i]=(i==src)?0:I
阅读全文
Hdu 1596 find the safest road
摘要:可以用最短路算法的原理MST性质去思考这道题,于是就有了Dijkstra算法的变形。注意当安全值为0时表示不连通。精简的CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=1010;constintINF=-110;doublew[SIZE][SIZE];doubled[SIZE];intv[SIZE];intn;voidDijkstra(ints,inte)//start,end;{inti,j;memset(v,0,sizeof(
阅读全文
Hdu 1874 畅通工程续
摘要:我用的是Floyd算法求所有定点的最短边,这道题需要判重,由于我对于图论没啥经验,WA了N次。似乎判断d[i][j] + d[k][j]是否溢出的判断条件有小错误额。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=1010;constintINF=0x3fffffff;intd[SIZE][SIZE];intn,m;voidFloyd(){inti,j,k;for(k=0;k<n;k++)for(i=0;i<n;i++
阅读全文
Hdu 2066 一个人的旅行
摘要:先试了试Floyd算法,结果没弄出来。然后试了试单源Dijsktra最短路径,两层循环找出最小的结果,建图的过程中遇到了小麻烦,有时间的话再写一写Floyd算法。CODE:#include<cstdio>#include<cstdlib>#include<string>usingnamespacestd;constintSIZE=1010;constintINF=0x3fffffff;intw[SIZE][SIZE];intv[SIZE],d[SIZE];intT,S,D,tot;intlink[SIZE],want[SIZE];intmax(intx,in
阅读全文
Hdu 2544 最短路
摘要:图论入门题。第一次写的时候用的是比较麻烦的模板,第二次写的时候模板精简多啦。还得要多多努力~较麻烦的模板,CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintINF=0x0fffffff;constintSIZE=110;intgraph[SIZE][SIZE];intvis[SIZE],dis[SIZE];intn,m;voidDijkstra(intsrc){inti,j;intmin,v;for(i=1;i<=n;i++)dis[i
阅读全文
Hdu图论最短路基础题。
摘要:HDU最短路题目:1.题号:2544难度:1题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2544分析小结:入门级别,甚至floyd都可以过。2.题号:2066难度:2题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2066分析小结:也是入门级别,求起点集合到终点集合的最短路。3.题号:2112难度:3题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2112分析小结:如果会用map容易,那么这题就是一道十足的水题,我用dijkstra O(n^2)的算法过
阅读全文
Hdu 1102 Constructing Roads (Prim算法)
摘要:第一次AC时,用的是Kruskal算法&并查集,现在用Prim实现一次。麻烦点的CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=101;constintINF=0x7fffffff;intgraph[SIZE][SIZE];//存储图结构intvis[SIZE];//标记是否走过intdis[SIZE];//存储最小边intn;voidinit(){memset(vis,0,sizeof(vis));memset(grap
阅读全文
筛选法求欧拉函数
摘要:欧拉函数的应用,以后看到互质的数第一个就要想到欧拉函数。今天又学到了好多家伙。欧拉定理:欧拉定理表明,若n,a为正整数,且n,a互质,(a,n) = 1,则a^φ(n) ≡ 1 (mod n)费马小定理:且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1 。筛选法求欧拉函数,时间复杂度O(nloglogn), CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>using
阅读全文
Hdu 2098 分拆素数和
摘要:简单模拟。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>#include<math.h>usingnamespacestd;constintSIZE=10001;intprime[SIZE];intvis[SIZE]={0};intcnt;voidinit(){inti,j;cnt=0;for(i=2;i<SIZE;i++)if(!vis[i]){prime[cnt++]=i;for(j=i*i;j<SIZE;j+=
阅读全文
Hdu 1238 Substrings
摘要:题目大意:给你一系列的字符串,让你从中找寻最大子序列,反向相同也可以。思路:暴力枚举长度最小的字符串的所有情况,这里相当于剪枝。然后根据strstr(char *sz1, char *sz2)判断是否存在于其子串中。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>usingnamespacestd;constintSIZE=101;structnode{charstr[SIZE];intlen;}a[SIZE];charsave[SIZE],
阅读全文
Hdu 2824 The Euler function
摘要:欧拉函数筛选法练习。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=3000001;__int64phi[SIZE];voidinit(){inti,j;memset(phi,0,sizeof(phi));phi[1]=1;for(i=2;i<SIZE;i++)if(!phi[i]){for(j=i;j<SIZE;j+=i){if(!phi[j])phi[j]=j;phi[j]=phi[j]/i*(i-1);}}ret
阅读全文
Hdu 3501 Calculation 2
摘要:欧拉函数的应用,以后看到互质的数第一个就要想到欧拉函数。今天又学到了好多家伙。欧拉定理:欧拉定理表明,若n,a为正整数,且n,a互质,(a,n) = 1,则a^φ(n) ≡ 1 (mod n)费马小定理:且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1。筛选法求欧拉函数,时间复杂度O(nloglogn), CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingn
阅读全文
Hdu 2099 整除的尾数
摘要:简单模拟。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=101;intsave[SIZE];intmain(){inta,div;while(~scanf("%d%d",&a,&div),a,div){inti,first=1;memset(save,0,sizeof(save));intcnt=0;for(i=0;i<=99;i++){if((a*100+i)%div==0){save
阅读全文
Hdu 1098 Ignatius's puzzle
摘要:1、一开始读题,65|f(x)是什么意思都不清楚,最后百度才知道是f(x)能被65整除。2、而且写这题完全没有思路,数论不好,我是根据网上的思路写的。思路:则f(x+1 ) = f (x) + 5*( (13 1 ) x^12 ...... .....+(13 13) x^0 )+ 13*( (5 1 )x^4+...........+ ( 5 5 )x^0 )+k*a;很容易证明,除了5*(13 13) x^0 、13*( 5 5 )x^0 和k*a三项以外,其余各项都能被65整除.那么也只要求出18+k*a能被65整除就可以了.而f(1)也正好等于18+k*a:题目的关键是函数式f(x)=
阅读全文
Hdu 1056 HangOver
摘要:简单模拟。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;intget(doubleaim){inti;doubles=0;for(i=1;;i++){if(s>=aim){returni;break;}s+=1.0/(i+1.0);}}intmain(){doubleaim;while(~scanf("%lf",&aim)){if(aim==0.00)break;printf("%dcard(s)\n"
阅读全文
Hdu 4158 & COJ 1535 GO
摘要:简单搜索题。思路:先将地图预处理。如果遇到没有摆放棋子的地方则进行搜索,如果这个区域内黑色棋子的数目或者白色棋子的数目为0的话,则可以将这片区域的面积加到白色棋子或者黑色棋子控制区域的总数。最后判断黑色棋子控制的范围与白色棋子控制的范围谁更大。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=21;constintmove[4][2]={{1,0},{-1,0},{0,-1},{0,1}};charmaze[SIZE][SIZE];
阅读全文
Hdu 1708 Fibonacci String
摘要:简单模拟题。思路:由于数据量太大,直接用字符串去模拟是不行的。可以直接通过字母出现的次数通过迭代计算第N次字母出现的次数。注意:Please output a blank line after each test case. 在每一个样例后面换行符。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=101;__int64hash[51][26];charsz1[SIZE],sz2[SIZE];voidinit(char*sz1,ch
阅读全文
Hdu 4153 & COJ 1530 Grey Area
摘要:仔细观察可以看为:3/3*5/5+2/3*3/5+1/3*1/5+0/3*1/5+0.01 又题目的最后一组测试数据是: 10 10 123451617182930 这可以得出什么结论呢? (1)首先看3,3是怎么来的?看测试数据中最大的测试数据为30,而它的w值为10,所以3是由最大的测试数据与w相除得到的,即3 = 30/10;然后3/3, 2/3, 1/3, 0/3逐级递减。 (2)观察可得5/5,3/5,1/5,1/5。我们来看,5怎么得到的呢?在直方图中出现最多的那个数就是5.而5,3,1,1则是各自在直方图中出现的频率。 由此可得结果,最后保留6位小数。COD...
阅读全文
Hdu 4159 & COJ 1536 Indomie
摘要:简单概率题。题目大意:Amjad去买菜,在他的前面有n人,Indomie有s份,他需要买到名为Indomie的菜,问这种可能的概率是多少? 思路:假设共有i人不买Indomie,则不买Indomie的方案有C(n,i)*2^n-i; //其他的人去买Rice或者Sugar. 以购买Indomie的份数分类,则所有的方案是 S1 = A0+A1+A2+A3+A4……As; 而还有剩余的Indomie的方案是S2 = A0+A1+A2+A3+A4…….As-1; 所以,概率就是S1/S2%。注意要考虑s>n与s == 0的情况。CODE:#include<stdio.h>#inc
阅读全文
Hdu 1271 整数对
摘要:数学题。去网上看了别人的思路。假设A中去掉的数在第k+1位,可以把A分成三部分,低位,k,和高位。A == a + b * 10^k + c * 10^(k+1)B == a + c * 10^kN == A + B == 2 * a + b * 10^k + c * 10^k * 11 其中b是一位数,b*10^k不会进位,用10^k除N取整就可以得到b + 11c,再用11除,商和余数就分别是c和b了。但是这里有个问题a是一个小于10^k的数没错,但是2*a有可能产生进位,如果用A/10^k的话,这样就影响了刚才求出来的b + 11c。但是没有关系,因为2*a进位最多为1,也就是b可能实际
阅读全文
Hdu 1266 Reverse Number
摘要:简单模拟。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;constintSIZE=101;charstr[SIZE];charsave[SIZE];intflag;voidreverse(char*str){inti;intlen=strlen(str);for(i=0;i<len/2;i++){chartmp=str[len-i-1];str[len-i-1]=str[i];str[i]=tmp;}re
阅读全文
Hdu 1242 Rescue
摘要:优先队列+BFS的经典题型。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<queue>usingnamespacestd;#defineSIZE201#defineINF0x0fffffffconstintmove[4][2]={{1,0},{-1,0},{0,-1},{0,1}};charmaze[SIZE][SIZE];intTime[SIZE][SIZE];intN,M;intbx,by,ex,ey;structnode{friendbooloperat
阅读全文
Hdu 1241 Oil Deposits
摘要:简单搜索。DFS求图有几个连通分量。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;constintSIZE=110;constintmove[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{0,-1},{1,1},{1,0},{1,-1}};charmaze[SIZE][SIZE];intN,M;intcheck(intr,intc){if(maze[r][c]!='*'
阅读全文
Hdu 1072 Nightmare
摘要:简单搜索题,由于很久没写搜索题的缘故,我自己的模板出现了小问题。注意:1、如果maze[q.x][q.y] == 4的话可能会出现死循环,所以要走过之后直接标记为0。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<queue>usingnamespacestd;constintSIZE=110;intmaze[SIZE][SIZE];constintmove[4][2]={{1,0},{-1,0},{0,-1},{0,1}};intflag[SIZE][SIZE
阅读全文
Hdu 1045 Fire Net
摘要:简单搜索题。关键是搜索状态的确定以及判断是否重复的方法。记得回溯,可能存在多种解但不一定是最大的。1、状态从左至右,从上至下去搜索的。2、由于是从上之下,从左至右搜索的,所以是要判断是否重复就看头顶上是否存在炮点,左手边是否存在炮点就行了。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;constintSIZE=6;intMAX;intmaze[SIZE][SIZE];intN;intcheck(intr,int
阅读全文
Hdu 1395 2^x mod n = 1
摘要:由于数据比较弱,所以没用欧拉函数直接枚举也可以过。思路:n为1或者n为2的倍数时一定不存在,为奇数时一定存在。 (ab) % n = (a%n * b%n) % n;CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;intmain(){intn;while(~scanf("%d",&n)){inti;if(n==1||n%2==0){printf("2^?mod%d=1\n",n);continue;}long
阅读全文
Hdu 1102 Constructing Roads
摘要:简单的最小生成树问题,关键在于建图的正确性。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>usingnamespacestd;constintSIZE=110;structnode{intu,v,w;}edge[SIZE*SIZE];intp[SIZE];intfind(intx){returnp[x]==x?x:p[x]=find(p[x]);}intcmp(constnodea,constnodeb){returna.w<=b.w
阅读全文
Hdu 2203 亲和串
摘要:思路:第一次写的时候是通过循环移位加KMP算法,结果超时了。第二次写直接将第一个字符串接在第一个字符串的后面。引用:该题请求一个串轮回后是否包含别的一个串,其实只要将母串反复一次再进行KMP匹配就行了,因为在反复母串的过程中,其实据已经将轮回后的所有可能都列举出来了,比如串 "ABCD" 反复后为 "ABCDABCD" 在这个串中 "BCDA" , "CDAB" 以及 "DABC" 都接踵呈现了。用该种办法求解的过程中还应重视当子串长度跨越母串时不进行匹配,因为那样可能输失足误的断定,比如上例中
阅读全文
Hdu 1711 Number Sequence
摘要:KMP模板题目。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;__int64a[1000001];__int64b[10001];intnextval[10001];__int64N,M;intget(__int64a[],__int64b[],intpos){__int64i,j;i=pos;j=1;while(i<=a[0]&&j<=b[0]){if(a[i]==b[j]||j==0){i++;j++;}elsej=nex
阅读全文
Hdu 1272 小希的迷宫
摘要:简单并查集的使用。1、判断是否存在回路。2、判断图是否连通。---------开始时我只考虑了是否有环,而没有考虑是否连通。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;constintmaxn=100010;intp[maxn],rank[maxn];intflag,sign[maxn];//判断是否是连通图intfind(intx){returnp[x]==x?x:p[x]=find(p[x]);}void
阅读全文
浙公网安备 33010602011771号