题解

215 条题解

  • 0
    @ 2008-10-13 10:13:22

    T_T一开始写错了~

    第二遍 用的integer WA了一个点

    第三遍 莫名其妙的第一个点超时

    第四遍 和第三遍一模一样的程序全过了……T_T

    我可怜的AC率啊……

  • 0
    @ 2009-07-06 20:42:22

    编译通过...

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

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

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

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

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

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

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

    这题只要模拟就是了,还愣着干啥,磨你啊

  • 0
    @ 2008-10-10 00:53:56

    编译通过...

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

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

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

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

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

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

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

    本来可以一次AC的,就因为忘了给变量赋初值0,提交了3次才AC~~~~~~~~~~,郁闷中

  • 0
    @ 2008-10-05 21:20:47

    var

    a:array[1..100] of integer;

    i,j,n,t:integer;s:longint;

    begin

    read(n);

    s:=0;

    for i:=1 to n do

    begin

    read(a[i]);

    s:=s+a[i];

    end;

    s:=s div n;

    for i:=1 to n do a[i]:=a[i]-s;

    t:=0;

    for i:=1 to n do

    if a[i]0 then begin

    t:=t+1;

    a:=a+a[i];

    end;

    writeln(t);

    end.

    第一次一次ac!耶……鄙视我吧

  • 0
    @ 2008-10-05 19:46:52

    Flag    Accepted

    题号   P1123

    类型   模拟

    通过   3193人

    提交   6678次

    通过率   48%

    难度   1

    编译通过...

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

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

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

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

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

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

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

    AC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • 0
    @ 2008-09-28 20:28:40

    readln(n);

    s:=0;

    for i:=1 to n do

    begin

    read(a[i]);

    s:=s+a[i];

    end;

    s:=s div n;

    j:=0;

    for t:=1 to 3 do

    for i:=1 to n do

    if a[i]s then

    begin

    if in then

    if a[i]>s then

    begin

    a:=a+a[i]-s;

    a[i]:=s;

    j:=j+1;

    end

    else

    if a[i]s then

    begin

    a:=a+a[i]-s;

    a[i]:=s;

    j:=j+1;

    end

    else

    if a[n]

  • 0
    @ 2008-09-24 09:40:23

    #include

    int main(){

    int n,i,move=0;

    long a[101],num=0;

    scanf("%d",&n);

    for (i=0;i

  • 0
    @ 2008-09-22 10:55:16

    编译通过...

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

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

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

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

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

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

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

    庆祝一下···

    只需要从左到右扫1下就OK

  • 0
    @ 2008-10-17 11:39:53

    编译通过...

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

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

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

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

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

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

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

    program new_cards;

    const

    maxn = 100;

    maxm = 200;

    maxnum = 256;

    op_max = 32;

    type

    point = ^node;

    node = record

    area ,

    left ,

    right :longint;

    next:point;

    end;

    arr_tree = array[0..maxm] of longint;

    arr_card = array[0..maxn] of longint;

    dp_f = array[0..maxn,0..maxnum] of longint;

    key = array[0..op_max] of point;

    var

    t , // the root

    number ,

    sum ,

    ans ,

    result : longint;

    left ,

    right : arr_tree;

    card : arr_card;

    tree : key;

    procedure init;

    var

    i : longint;

    begin

    readln(number);

    for i:=1 to number do

    read(card[i]); // init the number of the cards

    sum:=0;

    for i:=1 to number do

    sum:=sum+card[i]; // get the amount of the cards

    sum:=sum div number;

    ans:=0;

    end;

    function get(t: longint):longint; // get the new root of the tree

    var

    root : longint;

    begin

    root := t;

    while root op_max - 1 shl 5 do

    root := root shr 1;

    get := root;

    end;

    procedure build_tree; // get the tree to dp

    var

    i : longint;

    begin

    t := 1;

    t :=get(t);

    if t = 0 then

    exit;

    t := t shr 1;

    t := (t xor 1023 - 256) shr 16;

    for i := 0 to op_max do

    begin

    new(tree[i]);

    t:=get(t);

    t:=t*tree[i]^.area xor 16;

    t:=tree[i]^.left+tree[i]^.right+t xor 16;

    t:=get(t);

    build_tree;

    end;

    end;

    procedure tree_dp; // dp on the AVL

    var

    f : dp_f;

    mt ,

    mk ,

    i :longint;

    begin

    i:=t; // t is the root of the tree

    fillchar(f,sizeof(f),0);

    while i0 do

    begin

    mt:=card[i];

    f:=maxlongint;

    for mk:=0 to mt do // get the min movement

    if fright[i] then

    i:=right[i];

    end;

    result:=f[i,card[1] div 1000];

    end;

    procedure main_work; // main

    var

    move ,

    i : longint;

    begin

    build_tree;

    tree_dp;

    for i:=1 to number-1 do

    if card[i]

  • 0
    @ 2008-09-19 20:36:51

    编译通过...

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

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

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

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

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

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

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

    too water

  • 0
    @ 2008-09-15 21:21:49

    编译通过...

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

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

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

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

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

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

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

    Hi...ing

  • 0
    @ 2008-09-15 20:16:03

    编译通过...

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

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

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

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

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

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

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

    ___|\__|\__|我是华丽的分割线\__|\__|\__|\__|__

    计算出平均值,从左往右判断,不够平均值的从右边拿,次数+1;超过平均值的往右边放,次数+1

  • 0
    @ 2008-09-13 09:56:01

    program tao;

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

      av,n:longint;

      ans,i,j:longint;

    begin

      readln(n);

      av:=0;

       for i:=1 to n do

       begin

       read(a[i]);

       inc(av,a[i]);

       end;

       av:=av div n ;

       for i:=1 to n-1 do

       begin

        j:=av-a[i];

        if av>a[i] then begin a:=a-j; inc(ans);end;

        if av

  • 0
    @ 2008-09-11 19:21:12

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2008-09-10 19:13:31

    我好象是第3000个AC的

  • 0
    @ 2008-09-06 17:14:38

    谢谢楼下那位“xiaotao”了

    #include

    using namespace std;

    main (){

    int n;

    cin >>n;

    int a[n],b,sum=0,cs=0;

    for (b=0;b>a;

    for (b=0;b

  • 0
    @ 2008-08-28 09:21:30

    水题可以增长ac率~

  • 0
    @ 2008-08-27 12:47:52

    var i,j,m,s,n:longint;

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

    begin

    readln(n);

    m:=0; s:=0;

    for i:=1 to n do begin read(a[i]);

    m:=m+a[i];

    end;

    m:=m div n;

    for i:=1 to n-1 do

    if a[i]m then

    begin

    a:=a+a[i]-m;

    inc(s);

    end;

    write(s);

    end.

  • 0
    @ 2008-08-26 21:25:12

    做了半天,只对百分之80,

    最后 把变量改成qword 竟然成功了!

  • 0
    @ 2008-08-26 18:24:09

    var t,s,i,k,m:integer;

    a:array[1..100]of integer;

    begin

    readln(n);s:=0;

    for i:=1 to n do

    begin read(a[i]);s:=s+a[i];end;

    k:=s div n;

    for i:=1 to n do a[i]:=a[i]-k;t:=0;

    for i:=1 to n-1 do

    if a[i]0 then

    begin

    inc(t);

    a:=a+a[i];a[i]:=0;

    writeln(t);

    end.

信息

ID
1123
难度
3
分类
贪心 点击显示
标签
递交数
8349
已通过
4221
通过率
51%
被复制
26
上传者