题解

63 条题解

  • 0
    @ 2008-11-13 08:11:48

    编译通过...

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:答案正确... 56ms

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

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

    竟然是无限背包

  • 0
    @ 2008-11-13 08:10:45

    program code;

    var s:ansistring;

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

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

    procedure find(k,p:longint);

    begin

    a[p]:=trunc(sqrt(k));

    if a[p]*a[p]

  • 0
    @ 2008-11-13 08:06:45

    办证 138546XXXXX

  • 0
    @ 2008-11-13 07:59:53

    我根据拉格朗日定理做的,为什么只对了前4个???

  • 0
    @ 2008-11-13 07:50:36

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

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

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

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

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

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

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

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

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

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

    dfs 随便过....

  • 0
    @ 2008-11-13 07:29:00

    procedure get(x:longint);

    var i,j,k,l,t1:longint;

    begin

    for i:=256 downto 0 do

    if i*i=x then

    begin

    deal(i,j,k,l);

    exit;

    end;

    for i:=256 downto 0 do

    begin

    if i*i>x then continue else

    for j:=trunc(sqrt(x-i*i))+1 downto 0 do

    if i*i+j*j=x then

    begin

    deal(i,j,k,l);

    exit;

    end;

    end;

    for i:=256 downto 0 do

    begin

    if i*i>x then continue else

    for j:=trunc(sqrt(x-i*i))+1 downto 0 do

    if i*i+j*j>x then continue else

    for k:=trunc(sqrt(x-i*i-j*j))+1 downto 0 do

    if i*i+j*j+k*k=x then

    begin

    deal(i,j,k,l);

    exit;

    end;

    end;

    for i:=256 downto 0 do

    begin

    if i*i>x then continue else

    for j:=trunc(sqrt(x-i*i))+1 downto 0 do

    if i*i+j*j>x then continue else

    for k:=trunc(sqrt(x-i*i-j*j))+1 downto 0 do

    if i*i+j*j+k*k>x then continue else

    for l:=trunc(sqrt(x-i*i-j*j-k*k))+1 downto 0 do

    if i*i+j*j+k*k+l*l=x then

    begin

    deal(i,j,k,l);

    exit;

    end;

    end;

    end;

    枚举哦···

    好像是某定理····

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-11-13 06:47:10

    不是无限背包吗?

  • 0
    @ 2008-11-13 05:56:43

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    动归+交表+ansistring+writeln(s)

  • 0
    @ 2008-11-13 12:10:23

    我靠又是密码

    大家保持

    MS楼下那群人一堆废话

    应该是恰好背包

    我靠!>=写成了>结果改了4个小时!

  • 0
    @ 2008-11-13 00:09:34

    如果有多解,则输出第一个矩阵大的,如果第一个一样则输出第二个,以此类推.

    什么意思?

  • 0
    @ 2008-11-12 23:13:49

    dfs

  • 0
    @ 2008-11-12 21:57:42

    DP!

  • 0
    @ 2008-11-12 18:25:11

    又来密码。。

  • -1
    @ 2009-11-04 23:14:01

    范围看错、、看成10^16了、、太不仔细了、

  • -1
    @ 2009-10-22 20:33:24

    神似记忆化的广搜,0ms AC

  • -1
    @ 2009-10-22 00:31:50

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    竟然没有一个C的程序出现,看起来真郁闷..

    第3组数据的n过不了,所以CHEAT了...

    用的不是完全背包的状态转移方程,不过本质上一样...

    然后不小心发现了任意自然数可以表示四个非负整数的平方和..

    后面查了下这个四平方和定理,嗯,长见识了.

    #include

    #include

    #include

    long n,a[6]={0};

    char s[66001];

    long f[66001],g[66001];

    long Sqrt(long x)

    {

    int i=1;

    while(i*i=65 && n

  • -1
    @ 2009-09-13 20:40:43

    未加优化的dp~

    可惜没秒杀

  • -1
    @ 2009-08-06 14:23:19

    编译通过...

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:答案正确... 9ms

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

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

    爽哉

  • -1
    @ 2009-07-30 10:13:03

    55555555我哪里错了。。高手指点一下....(本人菜鸟)

    编译通过...

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

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

    ├ 测试数据 03:答案错误...

     ├ Hint: 长度为69 ├ 标准行输出 I ona...

     ├ 错误行输出 ItosI...

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

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

    ├ 测试数据 06:答案错误...

     ├ Hint: 长度为1500 ├ 标准行输出 ...TykNveK...

     ├ 错误行输出 ...TykBAhD...

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

    ├ 测试数据 08:答案错误...

     ├ Hint: 长度为15500 ├ 标准行输出 unMMZ...

     ├ 错误行输出 uVVXo...

    ├ 测试数据 09:答案错误...

     ├ Hint: 长度为35500 ├ 标准行输出 CUWgX...

     ├ 错误行输出 CGWHQ...

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

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

    Unaccepted 有效得分:60 有效耗时:0ms

    program ks;

    var s:ansistring;

    a:array[1..10000] of array[1..300,1..300]of char;

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

    n,k,j,i,t,p:longint;

    begin

    readln(s);

    n:=length(s);

    k:=256;

    while n0 do

    begin

    while k*k>n do

    dec(k);

    j:=n div (k*k);

    for i:=1 to j do

    begin

    inc(t);

    c[t]:=k;

    end;

    n:=n mod (k*k);

    end;

    k:=0;

    for p:=1 to t do

    begin

    for i:=1 to c[p] do

    for j:=1 to c[p] do

    begin

    inc(k);

    a[p]:=s[k];

    end;

    end;

    for p:=1 to t do

    begin

    for j:=1 to c[p] do

    for i:=1 to c[p] do

    write(a[p]);

    end;

    writeln;

    end.

  • -1
    @ 2009-07-22 23:44:35

    竟然相信第三个点长度为69...郁闷了...

    其实是71 ...

信息

ID
1480
难度
7
分类
字符串 | 动态规划 | 背包 点击显示
标签
递交数
802
已通过
138
通过率
17%
被复制
5
上传者