108 条题解
-
0ghy997671645 LV 8 @ 2009-10-24 18:21:52
额,贪心剪枝+搜索,可为什么第9个是55= =....
-
02009-10-23 19:49:22@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
....cheat a little -
02009-10-23 13:31:21@
我第九个点也是56。。。。。。。
打表了。。。。。。。。。。。。
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
int N,P,Ans,Pan[310],Num[310],Record[310][310],Link[310][310];
int Search(int come,int now)
{
if(Num[now]==0)
{
Num[now]=1;
int a,b;
for(a=1,b=0;a -
02009-10-22 21:28:03@
├ 测试数据 01:答案正确... 119ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 322ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:441ms按层暴搜竟然过了……
-
02009-10-03 13:50:57@
随机搜索,当每层的节点数超过5时,随机取1/3搜索可以过
-
02009-09-17 13:06:37@
第9个点为什么是55 啊?
我搜出56
难道一定要cheat吗? -
02009-09-17 08:41:16@
暴力随机。。差不多100次就可以了。。不过最后一个点用我生日做种子没出来。。换我GF的生日做种子就出来了。。。
-
02009-09-15 20:05:37@
编译通过...
├ 测试数据 01:答案正确... 291ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 306ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:597ms每层搜索20个最优点
-
02009-09-03 18:55:17@
type arr=array[1..300]of boolean;
var
aa:array[1..300]of longint;
sub:array[0..30]of longint;
b:array[1..300]of integer;
f:array[1..300]of longint;
s:array[1..300]of longint;
ss:array[1..300]of longint;
ii,t,tot,sum,k,qk,i,j,max,n,p,ans,x,y:longint;
now:arr;function updata(now:arr;i,d:longint):arr;
var z:longint;
begin
for z:=1 to n do if (b[z]=d)and now[f[z]] and (zi) then begin now[z]:=true;tot:=z;end;
updata:=now;
end;procedure search(j,d:longint;now:arr);
var ii,x,ok,i,t:longint;
begin
if d=max+1 then
begin
if ans>n-sum then ans:=n-sum;
writeln(ans); halt;
end;
if (n-sub[d]-sum>ans) and (ans0) then exit;
ok:=0;
for ii:=1 to n do
begin
i:=aa[ii];
if (b[i]=d) and (now[f[i]]) then
begin
sum:=sum+s[i];
search(i,d+1,updata(now,i,d));
sum:=sum-s[i];
inc(ok);
end;
end;
if ok=0 then if ans>n-sum then ans:=n-sum;
end;begin
readln(n,p);b[1]:=1;
for i:=1 to p do
begin
readln(x,y);
if b[x]=0 then f[x]:=y else f[y]:=x;
if b[x]=0 then b[x]:=b[y]+1 else b[y]:=b[x]+1;
end;max:=0;
for i:=1 to n do if max -
02009-09-02 21:05:02@
终于过了啊!!!
可恶的非完美算法!
可恶的题!!! -
02009-09-02 14:17:52@
计算出每个点的周期
然后按周期搜索 -
02009-08-27 16:20:35@
同志们用搜索
-
02009-08-22 15:16:25@
开数组存下每个结点的父结点
然后按层搜(不是结点)
1肯定在第一层,他的儿子在第2层,以此推知所有结点的层数
然后从第一层开始搜
很裸很裸,但很快很快 -
02009-08-07 14:17:58@
从一开始建有向树...搜索咯
不敢发代码了........怕被删
-
02009-08-07 09:52:41@
以前一直以为历年最后一道是强题,所以看到这道题目一直不敢写裸搜
自从喝了急支糖浆,哎,我灵清了,原来这道题目也可以一次秒杀。 -
02009-07-31 15:38:32@
此题就是裸搜~难点是建树,通俗的说就是搞清楚老子和儿子
需要注意的是1一定是要是老子,不会变成儿子(我在这里WA了一次)不过,由于数据弱的缘故~导致结点小的一定是老子(小号尝试过)~~~~这显然是错的,但你可以AC
为了rp,大家还是好好地建树吧~
-
02009-07-29 11:42:33@
只有最优性减枝都能全0ms
-
02009-07-28 19:52:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms啊哈哈哈 贪心果然好用
经过实践证明的权值:深度+总孩子数*4+子节点数*7;谁的大砍谁
program asd;
var
ttt,dfs:array[0..300]of integer;
f:array[1..300]of longint;
ceng,num:array[1..300]of integer;
t:array[1..300]of array[0..300]of integer;
mg:array[1..300,1..300]of boolean;
date,head,tail,j,i,a,b,n,p,nn:integer;
max:longint;
procedure build(i:integer);
var o:integer;
begin
num[i]:=1;
for o:=1 to n do
if (mg) then
begin
mg:=false;mg[o,i]:=false;
inc(t[i][0]);t[i][t[i][0]]:=o;
ttt[o]:=ttt[i]+1;
build(o);
inc(num[i],num[o]);
if ceng[o]>ceng[i] then ceng[i]:=ceng[o];
end;
inc(ceng[i]);
f[i]:=num[i]*4+ceng[i]+t[i][0]*7;
end;
begin
readln(n,p); fillchar(mg,sizeof(mg),false);
for i:=1 to p do
begin
readln(a,b);
mg[a,b]:=true;
mg:=true;
end; ttt[1]:=0;
build(1);
dfs[1]:=1;head:=1;tail:=1;
while headmax then begin max:=f[dfs[tail]];j:=tail; end;
end;
inc(head);
while (dfs[head]=0)and(headtail then break;
until ttt[dfs[head]]date;
dfs[j]:=0;if j0 then inc(nn);
end;
writeln(tail-nn);
end. -
02009-06-04 13:34:39@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms秒杀!!!!!!
最优化剪枝+链表,不过也得过。 -
02009-03-23 18:29:06@
用结构体写就TLE
改成裸数组AC