297 条题解
-
0
lc123456 LV 9 @ 2008-10-02 15:56:06
const dx:array[1..8] of longint=(1,1,2,2,-1,-1,-2,-2);
dy:array[1..8] of longint=(2,-2,1,-1,2,-2,1,-1);
var i,n,m,x,y,total:longint;
ans:array[0..15,0..15] of longint;
procedure search(x,y:longint);
begin
if (x=n) and (y=m) then inc(total)
else
if (x -
02008-10-01 15:14:47@
一开始BFS+回溯=超时
于是采用了记忆化搜索,全部0ms-___|\__|\__|\__|_-
1.马是走日字,要把马能一步走到的点和马所在的点先标记了
2.试下这个数据15 15 7 8 答案是19063305 -___|\__|-
#include
using namespace std;
int ex,ey,n,m;
const int dir[4][2]={1,0,-1,0,0,1,0,-1},dir2[8][2]={1,2,1,-2,-1,2,-1,-2,2,-1,2,1,-2,-1,-2,1};
struct _pos{int x,y;}top,tmp,q[1000000];
int mark[16][16],head,rear,dp[16][16];
int dfs(int x,int y)
{
int i,tx,ty,ret=0;
if(x==0&&y==0)return 1;
if(dp[x][y])return dp[x][y];
for(i=0;itx+ty)continue;
if(mark[tx][ty]==mark[x][y]-1)
ret+=dfs(tx,ty);
}
return dp[x][y]=ret;
}
int main()
{
bool flag;
int i,j,tex,tey;
while(cin>>n>>m>>ex>>ey)
{
for(i=0;i -
02008-09-27 22:00:33@
杨辉三角
刚开始看到有负数, 就把计数的total改成longint了, 结果还是60分,把所有变量都改了,就行了.
很难理解列,其他的变量都是i j x y... 我也只开了-1..16的数组, 说明测试数据没有问题啊,,,, 为什么会这样列..?
-
02008-09-26 17:39:14@
一次!!!!AC拉!!!!!!!
program p1121;
var
total:longint;
n,m,x,y:integer;
i,j:integer;
b:array[-2..18,-2..18] of shortint;
procedure try(k:integer);
begin
if b[n,m]=2 then begin total:=total+1; exit; end;
if b=0 then begin b:=2; j:=j+1; try(k+1); j:=j-1; b:=0; end;
if b=0 then begin b:=2; i:=i+1; try(k+1); i:=i-1; b:=0; end;
end;
{======MAIN======}
begin
read(n,m,x,y);
for i:=-2 to 18 do
for j:=-2 to 18 do
b:=1;
for i:=0 to n do
for j:=0 to m do
b:=0;
b[x,y]:=1;
b[x-2,y-1]:=1; b[x+2,y-1]:=1; b[x-1,y-2]:=1; b[x+1,y-2]:=1;
b[x+2,y+1]:=1; b[x+1,y+2]:=1; b[x-2,y+1]:=1; b[x-1,y+2]:=1;
total:=0;
i:=0; j:=0;
b[0,0]:=2;
try(1);
writeln(total);
end. -
02008-09-25 21:07:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-19 17:40:23@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms用递推的同志们注意了第3组数据是 5 6 2 2
-
02008-09-18 17:49:17@
就是,卒可以吃马的!可是,马不会动!
-
02008-09-18 09:13:03@
组合
-
02008-09-13 20:28:58@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-13 15:06:10@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 322ms
├ 测试数据 10:答案正确... 431ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:753ms搜索(回溯)+剪枝就可以了,一开始超时。。。
-
02008-09-13 16:50:24@
居然过了,我还以为会over time!
回溯!!! -
02008-09-13 12:20:35@
坐标轴里卒是往上走的!一开始被骗了
-
02008-09-10 20:07:30@
longint同学们
integer真是害死人啊。 -
02008-09-01 20:42:01@
为什么卒不能吃马啊 象棋规则里可以啊
-
02008-08-31 13:12:52@
编译通过...
├ 测试数据 01:答案正确... 25ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 681ms
├ 测试数据 10:运行超时...
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:706ms
怎么回事?? -
02009-02-14 22:33:47@
用的搜索,最后一个点很恶心,但也一次AC了!
const
dx:array[1..8] of integer=(-1,-2,-2,-1,1,2,2,1);
dy:array[1..8] of integer=(2,1,-1,-2,-2,-1,1,2);
var
p:array[-30..30,-30..30] of boolean;
m,n,x1,y1,b,c:integer;
ans:int64;
procedure dfs(x,y:integer);
var i:integer;
begin
if (x>n) or (y>m) then exit;
if (x=n) and (y=m) then inc(ans)
else
begin
if (x -
02008-08-28 09:16:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-08-26 17:40:31@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 275ms
├ 测试数据 10:答案正确... 400ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:675ms搜索加剪枝就可AC了 !!~~数据规模不是很叼!!!呵呵!!!
-
02008-08-23 11:50:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 338ms
├ 测试数据 10:答案正确... 572ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:910ms杨辉三角...............................
F:=F+F
如果是马或马控制的点就设为0,不影响的
-
02008-08-23 10:09:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 291ms
├ 测试数据 10:答案正确... 338ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:629ms