131 条题解
-
0pmq20 LV 3 @ 2008-11-06 09:29:17
#include
#define INF 20000000
#define maxn 100
long n,m,p;
long map[maxn+10][maxn+10];
int main()
{
long i,j,k,a,b,o,cnt;
scanf("%ld%ld",&n,&m);
for(i=1;i -
02008-11-04 21:28:39@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
下面的那个LG-lee就是个毛啊 直接是个毛啊........ -
02008-11-04 18:54:46@
这是什么题阿! 水…………
敲错了都能过, -
02008-11-04 13:23:59@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms不用那么麻烦,超简单算法!!!!!!
var a:array[1..100,1..100] of longint;
t1,t2,i,j,k,n,m,p,t:longint;begin
readln(n,m);
for i:=1 to n do
for j:=1 to n do
a:=10000;
for i:=1 to m do
begin
readln(t1,t2);
a[t1,t2]:=1;
a[t2,t1]:=1
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if (a>a+a[k,j]) then a:=a+a[k,j];
readln(p);
for i:=1 to p do
begin
readln(t1,t2);
t:=0;
for j:=1 to n do
if a[t1,j]+a[j,t2]=a[t1,t2] then inc(t);
inc(t,2);
writeln(t)
end
end. -
02008-11-03 20:01:11@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms考察对FLOYD的了解和对动态规划的理解。
恩恩,简单 -
02008-11-01 19:59:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar i,j,k,n,t1,t2,m,ans:longint;
a:array[0..100,0..100]of longint;
p:array[0..100,0..100,0..100]of longint;
v:array[0..100]of boolean;
procedure pre(i,j:longint);
var k:longint;
begin
for k:=1 to p do
begin
if not v[p] then begin inc(ans);v[p]:=true;end;
pre(i,p);
pre(p,j);
end;
end;
beginreadln(n,m);
for i:=1 to m do begin readln(t1,t2);a[t1,t2]:=1;a[t2,t1]:=1;end;
for k:=1 to n do
for i:=1 to n do if(a>0)and(ik) then
for j:=1 to n do if(a[j,k]>0)and(jk)and(ij) then
begin
if(a=0)or(a>a+a[k,j])then
begin
a:=a+a[k,j];
fillchar(p,sizeof(p),0);
p:=1;p:=k;
end;
if (a=a+a[k,j])and(kp[i,j,p]) then
begin
inc(p);
p[i,j,p]:=k;
end;
end;
readln(m);
for i:=1 to m do
begin
readln(t1,t2);ans:=2;
fillchar(v,sizeof(v),false);
v[t1]:=true;v[t2]:=true;
pre(t1,t2);
writeln(ans);
end;end.
-
02008-10-30 21:51:15@
我n^4的算法竟然秒杀...
-
02008-10-23 15:01:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 197ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:197ms弗洛伊德+宽搜
var i,j,k,l,m,n,p,q,t,ans:longint;
a:array[1..100,1..100] of longint;
road,step,last:array[1..100000] of longint;
sel:array[1..100] of boolean;
procedure sc(x:longint);
var g,t:longint;
begin
sel[road[x]]:=true;
if last[x]=0 then exit;
sc(last[x]);
end;
begin
read(n,m);
for i:=1 to n do
for j:=1 to n do
a:=1000;
for i:=1 to m do
begin
read(k,l);
a[k,l]:=1;
a[l,k]:=1;
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if (a>0) and (a[k,j]>0) then
if a+a[k,j] -
02008-10-18 20:08:07@
用dijkstra为什么过不了??????
-
02008-10-16 23:01:03@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
O(n^3)的floyed算法+统计。。。 -
02008-10-13 15:07:52@
floyd
program p1446;
var n,m:integer;
a:array[1..100,1..100]of 0..1;
dist:array[1..5000,1..2]of integer;
x,y,p,t:integer;
ans:longint;
i,j,k:integer;begin
assign(input,'p.in');reset(input);
assign(output,'p.out');rewrite(output);
readln(n,m);
for i:=1 to m do
begin
readln(x,y);
a[x,y]:=1;
a[y,x]:=1;
end;
readln(p);
for i:=1 to p do
begin
readln(dist,dist);end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
begin
if (a0)and(jk)and(ij) then begin
if (a0)and(a[k,j]0)and (a>a+a[k,j]) then a:=a+a[k,j];end
else if (a=0)and(ij)and(jK)and(a0)and(a[k,j]0) then a:=a+a[k,j];
end;for i:=1 to p do
begin
ans:=0;
if dist>dist then
begin
t:=dist ;
dist:=dist;
dist:=t;
end;for j:=1 to n do
begin
if a[dist,dist]=a[dist,j]+a[j,dist] then ans:=ans+1;
end;writeln(ans);
end;
close(input);
close(output);end.
-
02008-10-12 18:53:17@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msfloyd!!
-
02008-10-09 20:54:59@
第390通过
-
02008-10-06 22:17:46@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 400ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:400ms
直接Floyd,Floyd同时改字符串即可,
a -
02008-10-06 21:43:41@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
#include
main(){
int i,j,k;
int n,m;
int x,y;
int map[101][101];
int dp[101][101];
for (i=1;i -
02008-10-04 22:18:14@
鉴于我只会FLOYED。。我便用了FLOYED,然后。。。
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
但我看LS的大牛们似乎还有更好的方法,不知可否发出来,供老菜们参考。 -
02008-10-04 18:22:19@
咱的AC,大牛! ————————————————————lyd 燕麦
var
n,m,a,b,i,j,k,pro:longint;
TmpS:AnsiString;
Sa,Sb:String;
p:array[1..100,1..100] of AnsiString;
w:array[1..100,1..100] of longint;procedure dop(s:AnsiString);
var
sum,i,TmpN:longint;
t:array[1..100] of boolean;begin
fillchar(t,sizeof(t),false);
sum:=0;
while s'' do
begin
for i:=1 to length(s) do
if s[i]='|' then break;
TmpS:=copy(s,1,i-1);
delete(s,1,i);
val(TmpS,TmpN);
t[TmpN]:=true;
end;
for i:=1 to n do
if t[i] then inc(sum);
writeln(sum);
end;begin
fillchar(w,sizeof(w),26);
readln(n,m);
for i:=1 to m do
begin
readln(a,b);
w[a,b]:=1;
w:=1;
str(a,Sa);
str(b,Sb);
p[a,b]:=Sa+'|'+Sb+'|';
p:=p[a,b];
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if (ij) and (jk) and (ki) then
if w+w[k,j] -
02008-10-04 17:41:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
赤果果的floyed,咩~ -
02008-10-04 15:04:27@
先福咯一的,在此过程中记录亮点间最短路径所经过的点,然后求和!
-
02008-10-02 23:05:33@
program p1446;
var
f:array[1..100,1..100]of longint;
a:array[1..100,1..100]of longint;
x,y,n,m,p,i,j,k:longint;
begin
readln(n,m);
fillchar(f,sizeof(f),0);
for i:=1 to m do
begin
readln(x,y);
f[x,y]:=1;
f[y,x]:=1;
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if (ij)and(jk)and(ki) then
if (f0)and(f[k,j]0) then
if f=0 then f:=f+f[k,j]
else
begin
if f>f+f[k,j] then f:=f+f[k,j];
end;
readln(p);
fillchar(a,sizeof(a),0);
for i:=1 to p do
begin
readln(x,y);
if f[x,y]>0 then a[x,y]:=2;
for j:=1 to n do
if (jx)and(jy) then
if f[x,y]=f[x,j]+f[j,y] then inc(a[x,y]);
writeln(a[x,y]);
end;
end.
漂亮的程序