138 条题解
-
0zsyzhbc LV 4 @ 2008-12-08 13:23:32
program ball;
var
i,j,k,n,m:longint;
f:array[0..30,0..30] of longint;
begin
readln(n,m);
fillchar(f,sizeof(f),0);
f[1,0]:=1;
for k:=1 to m do
begin
f[1,k]:=f[2,k-1]+f[n,k-1];
for i:= 2 to n-1 do (注意i是从二开始循环!!!)
f:=f+f;
f[n,k]:=f[n-1,k-1]+f[1,k-1];
end;
write(f[1,m]);
end. -
02008-12-07 14:22:21@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1485;
const
maxnm=30;
var
n,m,i,j:integer;
f:array[0..maxnm+1,0..maxnm+1] of longint;
begin
readln(n,m);
fillchar(f,sizeof(f),0);
f[0,1]:=1;f[1,2]:=1;f[1,n]:=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 (j>1) and (j -
02008-12-06 22:10:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1485;
const
maxnm=30;
var
n,m,i,j:integer;
f:array[0..maxnm+1,0..maxnm+1] of longint;
begin
readln(n,m);
fillchar(f,sizeof(f),0);
f[0,1]:=1;f[1,2]:=1;f[1,n]:=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 (j>1) and (j -
02008-12-06 21:28:53@
不错的递推题..如果是原题说明出题的那帮人没有吃白饭.
-
02008-12-06 20:09:38@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms秒杀!!!
14行搞定!动态规划方程:
i代表第几秒,j代表第几个人;
v[0,1]:=1;
for i:=1 to m do
begin
v:=v+v;(因为一号=上秒n号+上秒2号);
for j:=2 to n-1 do
v:=v+v;
v:=v+v;
end;
writeln(v[m,1]);明白了吗?
-
02008-12-06 16:45:53@
记忆化DP
~~~~~~~~
仅供参考:var
n,m:longint;
x,y,i,j:longint;
f:array[0..30,0..30] of longint;
begin
readln(n,m);
f[0,1]:=1;
for i:=1 to m do begin
for j:=1 to n do begin
x:=j+1;
y:=j-1;
if x>n then x:=1;
if y -
02008-12-05 21:21:36@
垃圾题 用DP就行了 就是不知到考试的时候为什么会错
-
02008-12-05 20:32:51@
program chuanqiu;
var
f:array[0..50,0..50] of longint;
i,j,n,m:integer;
function xu(x:integer):integer;
begin
if x=0 then x:=n
else if x>n then x:=1;
exit(x);
end;
begin
read(n,m);
if n=1 then write(0);
if n=2 then
if odd(m) then write(0) else write(1);
if n>=3 then
begin
fillchar(f,sizeof(f),0);
f[1,0]:=1;
for j:=1 to m do
for i:=1 to n do
f:=f[xu(i-1),j-1]+f[xu(i+1),j-1];
write(f[1,m]);
end;
end. -
02008-12-04 12:34:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-12-03 16:24:22@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msNOIP时,想打表,但是.....打了半个小时还在Running.....
就这样,只拿了可怜的40分啊!!!! -
02009-09-12 21:59:19@
program chuanqiu;
var
f:array[0..50,0..50] of longint;
i,j,n,m:integer;
function xu(x:integer):integer;
begin
if x=0 then x:=n
else if x>n then x:=1;
exit(x);
end;
begin
read(n,m);
if n=1 then write(0);
if n=2 then
if odd(m) then write(0) else write(1);
if n>=3 then
begin
fillchar(f,sizeof(f),0);
f[1,0]:=1;
for j:=1 to m do
for i:=1 to n do
f:=f[xu(i-1),j-1]+f[xu(i+1),j-1];
write(f[1,m]);
end;
end. -
02008-12-02 20:57:03@
谨记,y=n和y>n,一失足成千古恨
-
02008-12-02 17:39:36@
111
-
02008-12-01 18:52:57@
`
\
`\
-
02008-11-30 21:56:57@
话说这道题算不得DP吧
明显就一个递推而已
F:=F+F
其中 J1= {J-1 (J〉1)或 N (J=1)}
J2= {J+1 (J -
02008-11-30 20:00:28@
设f表示从小蛮开始传了i次后到第j个人手里的方法数,由于球只能向两边传,所以只有当传了i-1次时且球在与第j个人相邻的两个人之一手中,下一次(即第i次)才能传到j手中。由此得到递推式:
f={f+f 1 -
02008-11-30 19:57:18@
NOIP 时找不到规律 搜索骗了40分
-
02008-11-30 19:55:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms1次ac
枚举左右:当abs(向左传的次数-向右的) mod n=0时,可以传回来
然后用组合公式求 C(左或右,m) 累加即可郁闷至极~~考试时居然没背过组合公式~~~~~~
很诡异的WA了~~~ -
02008-11-30 19:39:36@
猥琐的水题,少了个“=”,少算了一行,拉了我一个点,我也拉了题一个点……
提交三次,终于秒掉……
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
Flag Accepted
题号 P1485
类型(?) 动态规划
通过 116人
提交 199次
通过率 58%
难度 1 -
02008-11-30 13:33:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms简单DP
#include "stdio.h"main()
{
int f[31][31]={};
int msum,nsum;
int m,n;
f[0][0]=1;
scanf("%d%d",&nsum,&msum);
for(m=1;m