首页 > 其他 > 详细

bzoj3632

时间:2015-06-30 12:34:19      阅读:183      评论:0      收藏:0      [点我收藏+]

裸的最大团,随机化大法好

多次随机出一个选择顺序然后贪心即可

技术分享
 1 var b:array[0..51,0..51] of boolean;
 2     a:array[0..51] of longint;
 3     v:array[0..51] of boolean;
 4     n,m,i,j,x,y,ans:longint;
 5 
 6 procedure swap(var a,b:longint);
 7   var c:longint;
 8   begin  
 9     c:=a;
10     a:=b;
11     b:=c;
12   end;
13   
14 procedure work;
15   var i,j,s:longint;
16   begin
17     s:=0;
18     fillchar(v,sizeof(v),false);
19     for i:=1 to n do
20       if not v[a[i]] then
21       begin
22         v[a[i]]:=true;
23         for j:=i+1 to n do
24           if not b[a[i],a[j]] then v[a[j]]:=true;
25         inc(s);
26       end;
27     if ans<s then ans:=s;
28   end;
29 
30 begin
31   readln(n);
32   while not eof do 
33   begin
34     readln(x,y);
35     b[x,y]:=true;
36     b[y,x]:=true;
37   end;
38   for i:=1 to n do
39     a[i]:=i;
40   work;
41   for i:=1 to 15000 do
42   begin
43     for j:=2 to n do
44       swap(a[j],a[trunc(random*j)+1]);
45     work;
46   end;
47   writeln(ans);
48 end.
View Code

 

bzoj3632

原文:http://www.cnblogs.com/phile/p/4609674.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!