175 条题解
-
0hxlong LV 10 @ 2009-09-19 10:35:11
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
斜切!!!! -
02009-09-18 13:23:56@
好久没一次AC了..
-
02009-09-15 17:49:43@
从去年到今天,我总算AC了...
努力吧,就一次机会了 -
02009-09-13 14:19:55@
为什么这样做只有80分啊?
我之前是50
然后是60
然后这次是80
哪位高手看看哪里错了?var
m,n:integer;
a:array[0..50,0..50]of longint;
f:array[0..100,0..50,0..50]of longint;
procedure init;
var
i,j:integer;
begin
readln(m,n);
fillchar(a,sizeof(a),0);
for i:=1 to m do
begin
for j:=1 to n do
read(a);
readln;
end;
fillchar(f,sizeof(f),0);
end;
function max(a,b:longint):longint;
begin
if am)and(k -
02009-09-12 18:30:06@
program p1493;
var
a:array[-1..52,-1..52] of integer;
f:array[-1..52,-1..52,-1..52,-1..52] of longint;
i1,i2,j1,j2,i,j,n,m:integer;
function max(x,y,u,v:longint):longint;
begin
if y>x then x:=y;
if u>x then x:=u;
if v>x then x:=v;
max:=x;
end;
begin
read(n,m);
for i:=1 to n do
for j:=1 to m do
read(a);
fillchar(f,sizeof(f),0);
for i1:=1 to n do
for j1:=1 to m do
for i2:=1 to n do
for j2:=1 to m do
begin
f[i1,j1,i2,j2]:=max(f[i1-1,j1,i2-1,j2],f[i1-1,j1,i2,j2-1],f[i1,j1-1,i2-1,j2],f[i1,j1-1,i2,j2-1])+a[i1,j1];
if (i1i2) or (j1j2) then inc(f[i1,j1,i2,j2],a[i2,j2]);
end;
write(f[n,m,n,m]);
end.
本人是小菜,只写了一个超级LJ的四维的动规
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 56ms
├ 测试数据 08:答案正确... 56ms
├ 测试数据 09:答案正确... 103ms
├ 测试数据 10:答案正确... 88ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:303ms -
02009-09-10 16:49:13@
├ 测试数据 01:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:10 有效耗时:0ms
惨吧!!!!!!!!!!!!!!!!! -
02009-09-09 20:35:48@
#include"stdio.h"
#include"stdlib.h"
#define MAX(a,b) (a>b?a:b)
int a[60][60],dp[200][60][60];
int main()
{
int i,j,m,n,x1,x2,temp,max;
// freopen("输入.txt","r",stdin);
// freopen("输出.txt","w",stdout);
scanf("%d%d",&m,&n);
for(i = 1; i -
02009-09-08 18:41:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msconst filename='p1493';
var
m,n,i1,j1,i2,j2,k:longint;
a:array[0..50,0..50]of longint;
f:array[0..51,0..51,0..51,0..51]of longint;
function max(x,y:longint):longint;
begin if x>y then exit(x);exit(y);end;
begin
assign(input,filename+'.in');reset(input);
assign(output,filename+'.out');rewrite(output);
readln(m,n);
for i1:=1 to m do
for j1:=1 to n do
read(a[i1,j1]);
f[1,1,1,1]:=a[1,1];
for k:=2 to m+n-1 do
for i1:=1 to m do
for i2:=1 to m do
begin
j1:=k-i1;j2:=k-i2;
if (j1>0)and(j2>0)then
begin
if i1=i2 then continue;
f[i1,j1,i2,j2]:=max(f[i1-1,j1,i2-1,j2],max(f[i1,j1-1,i2-1,j2],max(f[i1-1,j1,i2,j2-1],f[i1,j1-1,i2,j2-1])));
if(i1=j1)and(i2=j2)then inc(f[i1,j1,i2,j2],a[i1,j1])
else f[i1,j1,i2,j2]:=f[i1,j1,i2,j2]+a[i1,j1]+a[i2,j2];
end;
end;
writeln(max(f[m-1,n,m,n-1],f[m,n-1,m-1,n]));
close(input);close(output);
end.一年了。。。
我还是不太会
早知道这个题跟三取方格数的做法一样我去年也许就AC了;如果我AC了这个题我去年就省一了;如果我去年省一说不定我会再接再厉好好学习,争取进省队
然后我就与XXX比翼双飞……然而,上面的全都是假设
今年我我还是不太会这个题
希望NOIP2009我能好运
这将是我第四次,也是最后一次在NOIP的复赛里。
Good Luck! -
02009-09-07 11:28:59@
const d:array[1..4,1..2]of integer=((-1,0),(-1,-1),(0,-1),(0,0));
var f:array[0..100,1..50,1..50]of longint;
a:array[1..50,1..50]of integer;
i,j,k,k1,n,m:integer;function max(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;begin
readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do read(a);
readln;
end;
for i:=2 to m+n-1 do
for j:=1 to i do
if j -
02009-09-07 00:18:04@
去年考试时,为什么就没对呢?!
今天10分钟,3位动归,秒杀!
#include
int lenth,wide;
int map[100][100],storage[200][100][100]={};
int fp(int step,int lenth1,int lenth2)
{
if(storage[step][lenth1][lenth2]!=0)return storage[step][lenth1][lenth2];
int temp=(lenth1==lenth2?map[lenth1][step-lenth1]:map[lenth1][step-lenth1]+map[lenth2][step-lenth2]),max=temp;
if(lenth1+1 -
02009-09-02 20:07:20@
注意锁定边界,不要越界啊
2 -
02009-09-01 21:21:59@
这道题搞了半天,最后才发现是调用数据的时候把X,Y搞反了..
我的也是啊,第一遍程序写对了,还过了6个点,搞了2节课,才发现读入时把X,Y搞反了,这才AC。浪费我时间啊!!!!!
-
02009-08-27 23:41:35@
这道题搞了半天,最后才发现是调用数据的时候把X,Y搞反了...
-
02009-08-27 22:21:54@
三维的DP=秒杀
var
n,m:longint;
f:array[0..100,0..100,0..100] of longint;
a:array[0..100,0..100] of longint;
i,j,k:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;
begin
assign(input,'vj1493.in');
reset(input);
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a);
close(input);
f[1,1,1]:=a[1,1];
for k:=2 to n+m-2 do
for i:=1 to k-1 do
for j:=i+1 to k do
begin
if i+1=j then
begin
f[k,i,j]:=max(max(f[k-1,i-1,j],f[k-1,i-1,j-1]),f[k-1,i,j])+a+a[j,k-j+1];
end
else
f[k,i,j]:=max(max(f[k-1,i,j],f[k-1,i-1,j]),max(f[k-1,i,j-1],f[k-1,i-1,j-1]))+a+a[j,k-j+1];
end;
writeln(f[n+m-2,n-1,n]+a[n,m]);
end. -
02009-08-26 15:35:55@
三取方格的弱话版
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 9ms
├ 测试数据 08:答案正确... 56ms
├ 测试数据 09:答案正确... 119ms
├ 测试数据 10:答案正确... 88ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:272ms -
02009-08-26 13:26:39@
诡异的DP
-
02009-08-25 20:09:40@
写丑了~~好慢
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 524ms
├ 测试数据 08:答案正确... 399ms
├ 测试数据 09:答案正确... 586ms
├ 测试数据 10:答案正确... 649ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:2158ms -
02009-08-25 11:55:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 25ms
├ 测试数据 08:答案正确... 41ms
├ 测试数据 09:答案正确... 103ms
├ 测试数据 10:答案正确... 72ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:241ms
我开了4维速度还是不行,有什么优化下? -
02009-08-22 16:40:12@
内存限制?
-
02009-08-22 16:15:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 88ms
├ 测试数据 08:答案正确... 150ms
├ 测试数据 09:答案正确... 197ms
├ 测试数据 10:答案正确... 166ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:601msprogram massage;
type ary=array[0..51,0..51] of integer;
bry=array[0..51,0..51,0..51,0..51] of integer;
cry=array[0..4] of integer;
var a:ary;
b:bry;
c:cry;
s,i,j,k,l,n,m,sum:integer;
function max(h,d,e,f:integer):integer;
var i:integer;
begin
max:=0; c[1]:=h;c[2]:=d;c[3]:=e;c[4]:=f;
for i:=1 to 4 do
if max