摘要: 【算法】MST-Prim①初步思路就是最小生成树,那么打井操作怎么办呢? 打井操作可看做是尤一个超级水源引出水,且代价为Wi的操作,所以加一个“超级点”就可以了,接着MST 1 var 2 n,heapsize,now,i,j:integer; 3 temp,mst:longint; 4 v:array[1..301,1..301] of longint; 5 p:array[1..301] of integer; 6 a,place:array[1..301] of integer; 7 d:array[1..301] of lo... 阅读全文
posted @ 2013-08-14 00:10 OmegaIota 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 1 var 2 d,place,a:array[1..10000] of longint; 3 now,MST,heapsize,i,n,x1,x2,x3,m:integer; 4 done:array[1..10000] of boolean; 5 e:array[1..10000,1..10000] of integer; 6 procedure exchange(x,y:integer); 7 var 8 temp:integer; 9 begin10 place[a[x]]:=y;11 place[a[y]]:=x;12 ... 阅读全文
posted @ 2013-08-13 21:19 OmegaIota 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 使用并查集 1 var 2 x1,x2,x3,n,m,i,j,mst:integer; 3 head,tail,u,p:array[1..1000] of integer; 4 procedure qsort(l,r:integer); 5 var 6 i,j,mid,temp:integer; 7 begin 8 i:=l;j:=r;mid:=(l+r) shr 1; 9 repeat10 while u[i]u[mid] do dec(j);12 if ij;20 if lfind(tail[i]) then57 ... 阅读全文
posted @ 2013-08-13 18:41 OmegaIota 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 1 var 2 father:array[1..10000] of integer; 3 n,i:integer; 4 function getfather(a:integer):integer; 5 begin 6 if father[a]=0 then exit(0); 7 father[a]:=getfather(father[a]); 8 getfather:=father[a]; 9 end;10 function judge_union(a,b:integer):boolean;11 var12 fa,fb:integer;13 begin14 ... 阅读全文
posted @ 2013-08-13 18:38 OmegaIota 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1 var 2 a,f:array[1..1000] of integer; 3 n,i,j,max:integer; 4 begin 5 readln(n); 6 for i:=1 to n do read(a[i]); 7 for i:=1 to n do 8 begin 9 max:=1;10 for j:=1 to i-1 do if a[j]max then max:=f[j]+1;12 f[i]:=max;13 end;14 max:=0;15 for i:=1... 阅读全文
posted @ 2013-08-13 18:37 OmegaIota 阅读(208) 评论(0) 推荐(0) 编辑