138 条题解
-
0ltlxksz LV 8 @ 2008-11-29 20:55:47
program ball;
var
n,m,i,j,x,y:longint;
f:array[0..30,1..30]of longint;
begin
readln(n,m);
f[0,1]:=1;
for i:=1 to m do
for j:=1 to n do
begin
x:=j-1;
if x=0 then x:=n;
y:=j+1;
if y>n then y:=1;
f:=f+f;
end;
writeln(f[m,1]);
end.楼下的那个交表的:
你有意义啊!!!!!!!
浪费Vijos服务器的空间和我们的时间!!!!!!!!!!
用常量不就行了!!!!!!!!!
const
Table:array[……]of longint=(……);
begin
readln(n,m);
writeln(Table[n,m]);
end; -
02008-11-29 20:43:36@
var
f:array[0..31,1..31] of qword;
i,j,k,n,m:longint;
begin
read(n,m);
f[0,1]:=1;
for i:=1 to m do
for j:=1 to n do
begin
if j=1 then f:=f+f;
if j=n then f:=f+f;
if (j1)and(jn) then
f:=f+f;
end;
write(f[m,1]);
end. -
02008-11-29 20:29:17@
刚开始编广搜,调试发现最大算到m=22(空间不够)
用DP就AC了 -
02008-11-29 19:32:13@
本人的另类做法:枚举+排列(另附:严禁打表!)
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
n,m,i,j:integer;
sum:qword;
f:array[0..30,0..30]of qword;
begin
read(n,m);
for i:=1 to m do f:=1;
for i:=1 to m do f[0,i]:=1;
for i:=1 to m do
for j:=1 to m do
f:=f+f;
for i:=0 to m do
begin
j:=m-i;
if (abs(i-j) mod n=0) then inc(sum,f);
end;
writeln(sum);
end.Flag Accepted
题号 P1485
类型(?) 动态规划
通过 41人
提交 64次
通过率 64%
难度 1提交 讨论 题解
-
02008-11-29 19:27:56@
同WSC,我也是。。。。。。
话说交表的力量无限大啊~~~~~~ -
02008-11-29 18:30:38@
17lines
-
02008-11-29 18:09:56@
很容易的DP。
F=F+F
j-1=0的时候令j-1=n
j=n的时候令j+1=1
边界条件
F[0,1]=1
用double或者long啥的存就ok了。 -
02008-11-29 17:24:01@
[red]Orz前面的WSC_1992神牛![/red]
[red]实用好方法![/red]
-
02008-11-29 17:23:19@
楼上的,你这个表...也未免太...
-
02008-11-29 17:19:20@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:运行超时...
├ 测试数据 06:运行超时...
├ 测试数据 07:运行超时...
├ 测试数据 08:运行超时...
├ 测试数据 09:运行超时...
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:50 有效耗时:0ms惨啊!考试时候就是丢掉五十分才给我弄了个250.....
-
02008-11-29 17:00:37@
f表示第i次传递时,传到j手里的种数。
f:=f+f
注意边界 -
02008-11-29 16:25:47@
大家,公式是什么啊
-
02008-11-29 15:55:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
记忆化搜索 -
02008-11-29 15:49:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
DP,5分钟搞定...
用m*n的数组(可以简化成2个一维),(i,j)记录i次传球后传到第j个人的方案数,最后输出(m,1)的值。 -
02008-11-29 15:38:09@
用记忆化搜索
-
02008-11-29 16:10:11@
公式应该可以推
我太菜了考后才推出
OTZ ZPW神牛
-
-12016-10-27 23:05:06@
这水题,c++记忆化搜索秒过。
c++
#include <iostream>
using namespace std;
int n,m,f[35][35];bool book[35][35];
inline int dfs(int x,int cnt)
{
if(cnt==m)return x==0?1:0;
if(book[x][cnt])return f[x][cnt];
f[x][cnt]=dfs((x+1)%n,cnt+1)+dfs((x+n-1)%n,cnt+1),book[x][cnt]=1;
return f[x][cnt];
}
int main()
{
cin>>n>>m;
cout<<dfs(0,0);
return 0;
}
-
-12015-08-20 18:32:41@
水题水水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水题水