358 条题解
-
0xnbird LV 8 @ 2009-05-14 23:00:17
编译通过...
├ 测试数据 01:答案正确... 9ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
记忆化 -
02009-05-14 20:24:17@
编译通过...
├ 测试数据 01:答案正确... 9ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:9ms记忆化搜索
-
02009-08-06 09:48:09@
可恶的9号点!!!!!!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!! -
02009-05-02 09:31:04@
傻傻得交了三次,第一次是边界定错了,第二次只定了边界..第三次0MS,AC...
-
02009-04-26 20:42:57@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
一定要开longint,不然第9组数据过不了!!!
var i,j,n,m,max:longint;
a,f:array[0..501,0..501] of longint;
procedure fdq(x,y:longint);
begin
f[x,y]:=1;
if (a[x,y]=f[x,y] then
f[x,y]:=f[x-1,y]+1;
end;
if (a[x,y]=f[x,y] then
f[x,y]:=f[x,y-1]+1;
end;
if a[x,y]=f[x,y] then
f[x,y]:=f[x+1,y]+1;
end;
if a[x,y]=f[x,y] then
f[x,y]:=f[x,y+1]+1;
end;
end;
begin
readln(n,m);
for i:=0 to n+1 do
for j:=0 to m+1 do begin
a:=0;
f:=0;
end;
for i:=1 to n do begin
for j:=1 to m do read(a);
readln;
end;
for i:=1 to n do
for j:=1 to m do
if f=0 then fdq(i,j);
max:=0;
for i:=1 to n do
for j:=1 to m do
if f>max then max:=f;
writeln(max);
end. -
02009-04-20 22:34:23@
编译通过...
├ 测试数据 01:答案正确... 56ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:56ms
本题如果要使用动态规划来处理的话,就需要先对点的高度进行排序
然后从最高高度的点开始,延高度依次排下
这样排序耗费O(crlogcr)的时间
而运算耗费O(cr)的时间
对于c=500,r=500的极限数据来说
需要大约5250000次计算(250000次读入,250000次计算,4750000次排序)
而如果使用记忆化搜索的话,需要访问cr个节点,每个节点至多被更新cr次
时间复杂度为O(c^2*r^2)
对于极限数据来说 需要31250000000次计算,虽然平均速度要高于这个值
但也不会低于100000000次
现贴出核心代码:
for i:=1 to c*r do
begin
g[a[i].x,a[i].y]:=1;
if (b[a[i].x,a[i].y] -
02009-04-11 17:33:42@
看这是个啥么.....
编译通过...
├ 测试数据 01:答案正确... 931ms
├ 测试数据 02:答案正确... 72ms
├ 测试数据 03:答案正确... 197ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 525ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 338ms
├ 测试数据 09:答案正确... 619ms
├ 测试数据 10:答案正确... 791ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:3473ms -
02009-03-31 22:13:13@
鄙视 VIJOS !!!!!
明明写着 0 -
02009-03-26 17:17:54@
program vijos1011;
const
arround:array[1..4,1..2]of integer=((-1,0),(1,0),(0,-1),(0,1));
var
n,m,i,j,max :longint;
high,a :array[0..501,0..501]of longint;procedure search(x,y:integer) ;
var
i,x1,y1 :longint;
begin
for i:=1 to 4 do
begin
x1:=x+arround;
y1:=y+arround;
if(x1>0)and(x10)and(y1a[x,y])and(high[x1,y1] -
02009-03-27 17:54:41@
这是用的 记忆化 搜索啊
例子都过了
就是过不了 这有10分
求哪位牛人 路过 看一下 救小弟一马 !!!!!!
#include
using namespace std;
const long int MAXN=32000;
int n,m;
long int map[501][501];
long int map1[501][501];
int next[5][3]={{0,0,0},{0,-1,0},{0,0,1},{0,1,0},{0,0,-1}};
int refer(int a,int b)
{
if(!map1[a])
{
int vau=1;
for(int i=1;i>n>>m;
for(int i=1;imap[i][j];
for(int i=0;i -
02009-03-18 23:14:43@
#include
#include
#define max(a,b) a>b?a:b
using namespace std;
long n,r,c,ins[502][502],map[502][502],opin;
int work(int i,int j){
if(map[i][j]==0){
if(ins[j] -
02009-03-16 19:00:17@
帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙
编译通过...
├ 测试数据 01:答案正确... 40ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:运行超时...
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:40ms
var a,b:array[0..501,0..501] of longint;
i,j,k,s,l,hang,lie:longint;
procedure try(x,y,sum:longint);
var i,j,l:longint;{if b[x,y]0 then
begin s:=sum+b[x,y]+1; end else}
begin
if (x1) and(a[x,y]>a[x-1,y]) then try(x-1,y,sum+1);
if (xhang)and(a[x,y]>a[x+1,y]) then try(x+1,y,sum+1);
if (y1) and(a[x,y]>a[x,y-1]) then try(x,y-1,sum+1);
if (ylie) and(a[x,y]>a[x,y+1]) then try(x,y+1,sum+1);
b[x,y]:=sum+1;
{if kk then k:=sum+1;
end;
begin
readln(hang,lie);
for i:=1 to hang do
begin
for j:=1 to lie do
read(a);
readln;
end;
fillchar(b,sizeof(b),0);
for i:=1 to hang do
for j:= 1 to lie do
try(i,j,0);
writeln(k);
end. -
02009-03-16 17:57:48@
编译通过...
├ 测试数据 01:答案错误...程序输出比正确答案长
├ 测试数据 02:答案错误...程序输出比正确答案长
├ 测试数据 03:答案错误...程序输出比正确答案长
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案错误...程序输出比正确答案长
├ 测试数据 06:答案错误...程序输出比正确答案长
├ 测试数据 07:答案错误...程序输出比正确答案长
├ 测试数据 08:答案错误...程序输出比正确答案长
├ 测试数据 09:答案错误...程序输出比正确答案长
├ 测试数据 10:答案错误...程序输出比正确答案长
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:0 有效耗时:0ms -
02009-03-16 17:43:59@
直接搜。。。。。。
-
02009-03-13 20:06:33@
记忆化搜索
AC~~~~~~~ -
02009-03-09 18:21:05@
编译通过...
├ 测试数据 01:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
谁有我BT? -
02009-02-11 16:36:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms记忆化搜索......
-
02009-01-29 03:48:31@
坚决不做搜索
即使慢也可以
恭喜我的 qsort+DP 成功AC编译通过...
├ 测试数据 01:答案正确... 1009ms
├ 测试数据 02:答案正确... 103ms
├ 测试数据 03:答案正确... 197ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 619ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 572ms
├ 测试数据 09:答案正确... 119ms
├ 测试数据 10:答案正确... 1009ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:3628ms -
02009-01-23 21:05:38@
写疵了……长了点……不过没大碍……
记忆化搜索……
{——————————————————————————————}
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
a,f:array[1..500,1..500]of longint;
n,m:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;function dfs(x,y:longint):longint;
var
t1,t2,t3,t4:longint;
maxa:longint;
begin
if ((a[x-1,y]>a[x,y]) or (x-1=0)) and
((a[x+1,y]>a[x,y]) or (x+1>n)) and
((a[x,y-1]>a[x,y]) or (y-1=0)) and
((a[x,y+1]>a[x,y]) or (y+1>m)) then exit(1);
maxa:=0;
t1:=-1;
t2:=-1;
t3:=-1;
t4:=-1;
if (x+1 -
02009-01-15 09:29:24@
想搜就搜
const
aa:array[1..4,1..2] of integer=((1,0),(-1,0),(0,1),(0,-1));
var
n,m,i,j,max:longint;
a,ff:array[1..500,1..500] of longint;procedure fff(x,y:integer);
var
i,pi,pj:longint;
begin
for i:=1 to 4 do
begin
pi:=x+aa;
pj:=y+aa;
if (pi>0)and(pi0)and(pja[x,y])and(ff[pi,pj]max
then max:=ff;writeln(max);
end.