题解

245 条题解

  • 0
    @ 2009-07-15 11:41:32

    var f:array [0..1000,0..1000] of longint;

    n,j,k,m,l,i,o:longint;

    begin

    readln(n,k);

    for i:=1 to n do

    f:=1;

    for j:=2 to k do

    for i:=j to n do

    f:=f+f;

    writeln(f[n,k]);

    end.

  • 0
    @ 2009-07-15 10:03:27

    var m,n,k,s:longint;

    a:array[1..10000]of longint;

    procedure hua(b,q,q2:longint);

    var i:longint;

    begin

    if q2=n then

    begin

    s:=s+1;

    exit;

    end;

    begin

    for i:=q to m-q*2 do

    if b>=i*2 then

    begin

    a[q2]:=i;

    hua(b-i,i,q2+1);

    end;

    end;

    end;

    begin

    read(m,n);

    hua(m,1,1);

    write(s);

    writeln;

    end.

    回溯?

  • 0
    @ 2009-07-13 14:12:26

    a[i][j]=a[j]+a[j-1];

    一定要初始化!!!!!!!!!!

  • 0
    @ 2009-07-13 11:03:39

    var

    f:array[0..200,0..6] of longint;

    i,j,n,k:longint;

    Begin

    readln(n,k);

    f[0,0]:=1;

    for i:=1 to n do

    for j:=1 to k do begin

    if i>j then f:=f;

    f:=f+f;

    end;

    writeln(f[n,k]);

    end.

  • 0
    @ 2009-07-10 10:32:19

    用最笨的方法,但照样AC

    var n,k,a,b,c,d,e,f,z:longint;

    begin

    read(n,k);

    if k=2 then begin

    for a:=1 to n-1 do

    for b:=a to n-a do

    if a+b=n then z:=z+1;

    end;

    if k=3 then begin

    for a:=1 to n-2 do

    for b:=a to n-a do

    for c:=b to n-a-b do

    if a+b+c=n then z:=z+1;

    end;

    if k=4 then begin

    for a:=1 to n-3 do

    for b:=a to n-a do

    for c:=b to n-a-b do

    for d:=c to n-a-b-c do

    if a+b+c+d=n then z:=z+1;

    end;

    if k=5 then begin

    for a:=1 to n-4 do

    for b:=a to n-a do

    for c:=b to n-a-b do

    for d:=c to n-a-b-c do

    for e:=d to n-a-b-c-d do

    if a+b+c+d+e=n then z:=z+1;

    end;

    if k=6 then begin

    for a:=1 to n-5 do

    for b:=a to n-a do

    for c:=b to n-a-b do

    for d:=c to n-a-b-c do

    for e:=d to n-a-b-c-d do

    for f:=e to n-a-b-c-d-e do

    if a+b+c+d+e+f=n then z:=z+1;

    end;

    writeln(z);

    end.

  • 0
    @ 2009-07-09 22:47:32

    记忆化 秒杀

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    i,j,k,kk,n:longint;

    f:array[0..200,1..6,0..200]of longint;

    function dfs(x,y,z:longint):longint;

    var

    i,t:longint;

    begin

    if x

  • 0
    @ 2009-07-05 10:03:47

    DFS 也可以过~嘿~

    var ans:int64;

    m,k:longint;

    procedure dfs(l,j,tol:longint);

    var i:longint;a

    begin

    if l=k then

    begin

    if tol>=j then inc(ans);

    exit;

    end;

    for i:=j to tol do

    begin

    if tol-i

  • 0
    @ 2009-06-30 20:19:31

    惨啊~~~

    第一遍用的是整型~~~

    好在第二遍过了

    在此对推出式子的牛们致以崇高的敬意!!!

  • 0
    @ 2009-05-27 21:44:48

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    15题AC

  • 0
    @ 2009-05-21 21:12:51

    program ex01;

    var i,j,n,k:longint;

    f:array[0..200,0..6] of longint;

    begin

    readln(n,k);

    f[0,0]=0;

    for i:=1 to n do f:=1;

    for i:=2 to n do

    for j:=2 to n do

    f:=f+f[abs(i-j),j];

    writeln(f[n,k]);

    end.

  • 0
    @ 2009-05-21 21:10:55

    program ex03;

    var i,j,n,k:longint;

    f:array[0..200,0..6] of longint;

    begin

    readln(n,k);

    f[0,0]=0;

    for i:=1 to n do f:=1;

    for i:=2 to n do

    for j:=2 to n do

    f:=f+f[abs(i-j),j];

    writeln(f[n,k]);

    end.

  • 0
    @ 2009-05-10 17:34:07

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    AC了 走过。。。

  • 0
    @ 2009-05-07 21:59:58

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2009-05-04 00:40:42

    #include

    int f[201][7]={0},n,k;

    int main()

    {

    int i,j;

    scanf("%d %d",&n,&k);

    f[1][1]=1;

    for(i=2;ij

    /*

    规律:

    x 1 2 3

    y

    1 1 0 0

    2 1 1 0

    3 1 1 1

    4 1 2 1

    5 1 2 2

    6 1 3 3

    7 1 3 4

    */

    12行秒杀..

    还记得某位编程狂人说过:当代码不能再缩短了,才是完美的程序!

    ^_^

  • 0
    @ 2009-04-15 17:43:07

    var

    a:array[-6..1000,1..6]of longint;

    n,k,j,i,p:integer;

    begin

    read(n,k);fillchar(a,sizeof(a),0);

    a[0,1]:=1;

    for i:=1 to n do

    for j:=1 to k do

    for p:=1 to j do

    inc(a,a);

    writeln(a[n,k])

    end.

  • 0
    @ 2009-04-08 13:12:12

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var f:array[0..200,0..6]of longint;

    var i,j,n,k:longint;

    begin

    readln(n,k);

    f[0,0]:=1;

    for i:=1 to n do f:=1;

    for i:=2 to n do

    for j:=2 to k do

    f:=f+f[abs(i-j),j];

    writeln(f[n,k]);

    end.

  • 0
    @ 2009-03-19 17:27:29

    DFS 0 MS

    第一次用INTEGER只有40分...

    var n,k:integer;

    total:longint;

    procedure dfs(n,dep,now:longint);

    var i:integer;

    begin

    if dep = k then

    begin

    if n >= now then inc(total);

    exit;

    end;

    for i:= now to n div 2 do dfs(n-i,dep+1,i);

    end;

    begin

    readln(n,k);

    total:=0;

    dfs(n,1,1);

    writeln(total);

    end.

  • 0
    @ 2009-03-13 13:21:34

    我想问

    将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。

    这句话后半句是不是错的

    答案并没有把两份相同的情况删除啊

    例如样例的表是

    |1 2 3

    ---|---|-

    1|1 0 0

    2|1 1 0

    3|1 1 1

    4|1 2 1

    5|1 2 2

    6|1 3 3

    7|1 3 4

    分成这几份嘛...

    1 1 5 1 2 4 1 3 3 2 2 3

    很明显两份之间可以相同啊...求教!

  • 0
    @ 2009-03-05 00:10:04

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    暴搜超时最后一个点,递归一次AC……

    不知zhhyoi用户暴搜怎么过的,汗……

    #include "stdio.h"

    int fun(int n,int k,int start)

    {

    int i=start,sum=0;

    if(k==1) return 1;

    for(;i

  • 0
    @ 2009-03-02 12:24:35

    为什么用回溯会超时??

信息

ID
1117
难度
3
分类
动态规划 点击显示
标签
递交数
6168
已通过
3140
通过率
51%
被复制
14
上传者