博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NOIP2008T3 传球游戏
阅读量:5128 次
发布时间:2019-06-13

本文共 1788 字,大约阅读时间需要 5 分钟。

 

动态规划

//为了方便边界跨越,人的数组下标从0开始。a[i,j]编号为i的人表示j次传球以后有多少种方式获得球。var n,m,i,j:longint;    a:array[0..30,0..30] of longint;begin    assign(input,'ballg.in'); reset(input);    assign(output,'ballg.out'); rewrite(output);    readln(n,m);    for i:=1 to n-1 do a[i,0]:=0;    a[0,0]:=1;//球还没有开始传,在0号,即小蛮手中    for j:=1 to m do//表示第几次传球        for i:=0 to n do            a[i,j]:=a[(i+1) mod n,j-1]+a[(i-1+n) mod n,j-1];//每个人只能从上一个或下一个人手中拿到球    writeln(a[0][m]);    close(input); close(output);end.

DFS(WA40)

var n,m:longint;    ans:int64;procedure find(i,j:integer);begin  if (i=m)  then    begin       if j=1 then       ans:=ans+1;    exit;  end;  find(i+1,j mod n+1);  if j=1  then  find(i+1,n)  else find(i+1,j-1);end;begin  readln(n,m);  if (n mod 2=0) and (m mod 2=1) then    begin      writeln('0');      halt;    end;  find(0,1);  writeln(ans);end.

 

 

var n,m,c,i:longint;    ans:int64;    next,pre:array[1..1000] of longint;procedure DFS(j:integer);begin  if(c=m) then  begin      if j=1 then ans:=ans+1;      exit;  end;  inc(c); DFS(next[j]); dec(c);  inc(c); DFS(pre[j]); dec(c);end;begin    readln(n,m);    if (n mod 2=0) and (m mod 2=1) then begin writeln('0'); halt; end;    for i:=1 to n-1 do next[i]:=i+1; next[n]:=1;    for i:=2 to n do pre[i]:=i-1; pre[1]:=n;    c:=0;    DFS(1);    writeln(ans);end.

 

 

var n,m,i:longint;    ans:int64;    next,pre:array[1..1000] of longint;procedure DFS(i,j:integer);begin  if(i=m) then  begin      if j=1 then ans:=ans+1;      exit;  end;  DFS(i+1,next[j]);  DFS(i+1,pre[j]);end;begin    readln(n,m);    if (n mod 2=0) and (m mod 2=1) then begin writeln('0'); halt; end;    for i:=1 to n-1 do next[i]:=i+1; next[n]:=1;    for i:=2 to n do pre[i]:=i-1; pre[1]:=n;    DFS(0,1);    writeln(ans);end.

 

 

转载于:https://www.cnblogs.com/qilinart/articles/3389597.html

你可能感兴趣的文章
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>