题解

166 条题解

  • 0
    @ 2009-08-12 19:45:28

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    血与泪!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    去年的noip

    就是它 让我痛失一等

    百感交际

  • 0
    @ 2009-08-11 14:27:04

    const hc:array[0..9]of integer=(6,2,5,5,4,5,6,3,7,6);

    var i,j,n,t:longint;

    function calc(x:longint):longint;

    var c:integer;

    begin

    c:=0;

    repeat

    c:=c+hc[x mod 10];

    x:=x div 10;

    until x

  • 0
    @ 2009-08-09 09:20:09

    我有两种做法:

    1.枚举两个加数,我只枚到999就满分了:

    const

    a:array[0..9]of byte=(6,2,5,5,4,5,6,3,7,6);

    var

    n,i,j,t:longint;

    function tot(x:longint):longint;

    begin

    tot:=0;

    repeat

    inc(tot,a[x mod 10]);

    x:=x div 10;

    until x

  • 0
    @ 2009-08-07 23:41:08

    非打表。。。

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    const

    q:array[0..9] of longint=(6,2,5,5,4,5,6,3,7,6);

    var

    a:array[0..1111] of longint;

    i,j,sum,n:longint;

    begin

    readln(n); dec(n,4); sum:=0;

    for i:=0 to 9 do a[i]:=q[i];

    for i:=10 to 1111 do a[i]:=a[i div 10]+a[i mod 10];

    for i:=0 to 1111 do

    for j:=0 to i do if a[i]+a[j]+a=n then inc(sum);

    writeln(sum);

    end.

  • 0
    @ 2009-08-06 21:00:11

    集体cheat啊……

    强!

  • 0
    @ 2009-08-05 18:45:28

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    const s:array['0'..'9'] of integer= (6,2,5,5,4,5,6,3,7,6); w:longint=4;var a,b,c,n,r:longint; f:array[0..1000] of longint; tmp:string;begin read(n); r:=0; fillchar(f,sizeof(f),0); for a:=0 to 1000 do begin str(a,tmp); for b:=1 to length(tmp) do f[a]:=f[a]+s[tmp[ b ]]; end; for a:=0 to 1000 do for b:=0 to 1000-a do begin c:=a+b; if f[a]+f[ b ]+f[c]+w=n then r:=r+1; end; write(r);end.

  • 0
    @ 2009-08-02 14:44:46

    本殿下提供两个程序

    {~~~~~~~~~~~~~~~~~~~~~~~~~~第一个~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}

    const num:array[0..9] of integer=(6,2,5,5,4,5,6,3,7,6);

    var

    a:array[0..10000] of integer;

    i,j,n,ans:integer;

    begin

    readln(n);

    for i:=0 to 9 do

    a[i]:=num[i];

    for i:=10 to 2000 do

    a[i]:=a[i div 10]+a[i mod 10];

    for i:=0 to 1000 do

    for j:=0 to 1000 do

    if (a[i]+a[j]+a+4=n) then inc(ans);

    writeln(ans);

    end.

    {~~~~~~~~~~~~~~~~~~~~~~~~~~第二个~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}

    const

    a:array[1..26] of integer=(0,0,0,0,0,0,0,0,0,0,0,0,1,2,8,9,6,9,29,39,38,65,88,128,192,319);

    var

    n:longint;

    begin

    readln(n);

    writeln(a[n]);

    end.

  • 0
    @ 2009-07-31 18:05:32

    program ex1;

    const

    mat:array[0..9]of longint=(6,2,5,5,4,5,6,3,7,6);

    function fun(m:longint):longint;

    var t:longint;

    begin

    t:=0;

    while m>0 do

    begin

    inc(t,mat[m mod 10]);

    m:=m div 10;

    end;

    fun:=t;

    end;

    var a:array[0..1000] of longint;

    n,j,i,ans:longint;

    begin

    readln(n);

    if n

  • 0
    @ 2009-07-31 14:35:12

    a:0~~1000

    b:0~~1000

  • 0
    @ 2009-07-31 00:10:52

    ......雲......

    i,j都要窮舉到1000,害得我交了2次,鬱悶,RP---|--

  • 0
    @ 2009-07-26 16:04:07

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program ex1;

    const

    mat:array[0..9]of longint=(6,2,5,5,4,5,6,3,7,6);

    function fun(m:longint):longint;

    var t:longint;

    begin

    t:=0;

    while m>0 do

    begin

    inc(t,mat[m mod 10]);

    m:=m div 10;

    end;

    fun:=t;

    end;

    var a:array[0..1000] of longint;

    n,j,i,ans:longint;

    begin

    readln(n);

    if n

  • 0
    @ 2009-07-25 16:10:01

    const

    Num:array['0'..'9']of integer=(6,2,5,5,4,5,6,3,7,6);

    var

    i,j:integer;

    ans:integer;

    n:integer;

    function jisuan(i:integer):integer;

    var

    st:string;

    k:integer;

    tot:integer;

    begin

    tot:=0;

    str(i,st);

    for k := 1 to length(st) do

    inc(tot,Num[st[k]]);

    jisuan:=tot;

    end;

    begin

    for n := 0 to 24 do begin

    ans:=0;

    for I := 0 to 1000 do

    for j := 0 to 1000 do

    if n=(jisuan(i)+jisuan(j)+jisuan(i+j)+4) then inc(ans);

    writeln(n,':',ans);

    end;

    readln;

    end.

    先上面的,记下来(怕超时);

    然后

    const

    a:array[1..26] of integer=(0,0,0,0,0,0,0,0,0,0,0,0,1,2,8,9,6,9,29,39,38,65,88,128,192,319);

    var

    n:longint;

    begin

    readln(n);

    writeln(a[n]);

    end.

    囧 就是这样

  • 0
    @ 2009-07-14 17:25:44

    编译通过...

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

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

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

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

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

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

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

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

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

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

    谢谢YYz 提供水题

  • 0
    @ 2009-07-09 23:01:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var a:array[0..60001]of longint; st:string; i,w,n,j,e:longint;

    begin

    a[0]:=6;

    a[1]:=2;

    a[2]:=5;

    a[3]:=5;

    a[4]:=4;

    a[5]:=5;

    a[6]:=6;

    a[7]:=3;

    a[8]:=7;

    a[9]:=6;

    for i:=10 to 6001 do a[i]:=0;

    readln(n);

    for i:=10 to 6001 do

    begin

    str(i,st);

    e:=length(st);

    for j:=1 to e do

    a[i]:=a[i]+a[ord(st[j])-48];

    end;

    w:=0;

    for i:=0 to 3000 do for j:=0 to 3000 do

    if a[i]+a[j]+a=n-4 then

    begin

    inc(w);

    // writeln(i,'+',j,'=',i+j);

    end;

    write(w);

    end.

    数组1000->40

    60000->超时

    6000->AC

  • 0
    @ 2009-07-09 18:29:19

    。。范围改了三次

    1..100的话只有60分。。

    1..500的话有80分。。

    1..1000就可以AC了。。

    后怕啊。。。要是比赛上遇到那就死的不明不白了。。。

  • 0
    @ 2009-07-09 17:41:37

    我不得不说vijos的评测机好的不是一点 我的FP半天没反应,这里100ms左右

    这个题,范围开多大,真的不好说,不想算的话,开到10000,打表好了

    真的不难啊 我就想不明白我的NOIP2008怎么就挂在这个题上了,直接做第三题,只过了4个点,这个cheat 了三个,结果是传说中的省一国二啊。。。

    第一个思路是,穷举火柴棒的数目,不好做,我就放弃了,没想到穷举数值是那么的简单

    再做题,多换思路,多做题,NOIP2009努力!

  • 0
    @ 2009-07-06 20:15:36

    大牛们!!!!!!!!!!!!!!

    错了一个点,请指教

    const

    d:array[0..9]of integer=(6,2,5,5,4,5,6,3,7,6);

    var

    s:array[1..3]of longint;

    ans,n:integer;

    score:real;

    procedure dfs(dep,r,first:integer);

    var

    i:integer;

    begin

    if not((dep=3)and(s[1]+s[2]n then continue;

    if (dep

  • 0
    @ 2009-07-06 20:03:47

    var n:longint;

    begin

    readln(n);

    if (n>=0) and (n

  • 0
    @ 2009-07-01 14:08:51

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    在家电脑上都不能1S通过,没想到puppy速度这么快,耶!

    编一个函数来算每个数需要的火柴数,然后用两个变量从0到1000的做,符合条件ans+1,至于能不能过就要看rp了。。。

  • 0
    @ 2009-07-07 17:06:37

    考虑的时候别忘了先扣除4根用于“+”“=”的火柴

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

信息

ID
1496
难度
3
分类
搜索 点击显示
标签
递交数
6085
已通过
2979
通过率
49%
被复制
17
上传者