讨论 / 求帮助
球威 2012-03-02 19:37:00
点我顶贴 收藏 删除
program ma;

var

map:array[0..30,0..30]of int64;

x,y,k,l:int64;

m,n:int64;

i,j:longint;

ans:longint;

function tong(a,b:longint):boolean;

begin

if(a=x)and(b=y)then exit(false);

if((a-x)*(a-x)+(b-y)*(b-y)=5)then exit(false)

else exit(true);

end;

begin

fillchar(map,sizeof(map),0);

read(m,n,x,y);

for i:=1 to m do if tong(0,i)then map[0,i]:=1

else break;

for i:=1 to n do if tong(i,0)then map[i,0]:=1

else break;

// writeln(tong(2,0));

for i:=1 to n do

for j:=1 to m do

if tong(i,j)then map[i,j]:=map[i-1,j]+map[i,j-1];

for i:=1 to n do

for j:=1 to m do

if tong(i,j)then map[i,j]:=map[i-1,j]+map[i,j-1];

// print;

write(map[m,n]);

end.题目:过河卒

状态: Unaccepted

测评机: Xeost[5]

得分: 60分

提交日期: 2012-3-3 9:39:00

有效耗时: 969毫秒

测试结果1: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果2: 通过本测试点|有效耗时187ms

测试结果3: 通过本测试点|有效耗时156ms

测试结果4: 通过本测试点|有效耗时157ms

测试结果5: 输出过少|用户输出数据少于标准输出的50%[标准输出8位|选手输出1位]

测试结果6: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果7: 通过本测试点|有效耗时156ms

测试结果8: 通过本测试点|有效耗时156ms

测试结果9: 通过本测试点|有效耗时157ms

测试结果10: 输出过少|用户输出数据少于标准输出的50%[标准输出8位|选手输出1位]

#1 ···@2012-03-02 19:31:00
回复 删除
···

···

#2 thl@2012-03-02 19:35:00
回复 删除
额·····总感觉有点奇怪

你赋初始值和处理过程都好像有点问题,我发我的程序,你研究研究吧

const

c:array[1..8]of integer=(1,1,-1,-1,2,2,-2,-2);

d:array[1..8]of integer=(-2,2,-2,2,1,-1,-1,1);

var

i,j,n,m,x,y:integer;

p:array[-2..21,-2..21] of boolean;

a:array[0..21,0..21] of int64;

begin

readln(n,m,x,y);

fillchar(p,sizeof(p),true);

fillchar(a,sizeof(a),0);

p[x,y]:=false;

a[0,0]:=1;

for i:=1 to 8 do

p[x+c[i],y+d[i]]:=false;

for i:=1 to m do

if not p[0,i] then break

else a[0,i]:=a[0,i-1];

for i:=1 to n do

if not p[i,0] then break

else a[i,0]:=a[i-1,0];

for i:=1 to n do

for j:=1 to m do

if p[i,j] then a[i,j]:=a[i-1,j]+a[i,j-1];

writeln(a[n,m]);

end.

#3 ···@2012-03-02 19:37:00
回复 删除
额额额额额······

额~~~~~~

查看更多回复
提交回复