题解

215 条题解

  • 0
    @ 2008-08-23 10:45:09

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

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

    begin

    readln(n);j:=0;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-1 do

    if a[i]s then

    begin

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

    j:=j+1;

    end;

    writeln(j);

    end.

    AC了~

  • 0
    @ 2008-08-19 23:35:56

    两个同样的程序

    改动了数组范围

    提交

    第一次80分 第二次40分

    郁闷

  • 0
    @ 2008-08-07 15:37:39

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

    ├ 测试数据 02:答案错误... ├ 标准行输出

     ├ 错误行输出

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

    ├ 测试数据 04:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 05:答案错误... ├ 标准行输出

     ├ 错误行输出

  • 0
    @ 2008-08-02 14:06:47

    这道题目看起来其实有两种情况,其实一写下来,可以发现两种情况都是一样的,直接找不等于平均数的情况就OK了··

  • 0
    @ 2008-08-02 14:05:15

    题目分析

    因为“纸牌总数必为 N 的倍数”,所以拿到这个题目首先想到求出平均数。又因为题目只需要求出最少的移动次数,所以我们不需要管移动的先后次序。

    for i:=1 to n do (对每一堆纸牌“逐一击破”),如果这一堆纸牌比平均数要少的话,就向下一堆借一些纸牌;如果这一堆纸牌比平均数要多的话,就把多出来的纸牌留给后面的堆用。这样就保证了前面堆的纸牌数都达到平均数。

    有些同学可能会问,那不够借的话怎么办呢?其实也没关系,前面已经说过,我们是不需要管移动的先后次序的。不够借也照样借。当前这一堆向下一堆借,下一堆向下下一堆借,下下一堆向下下下一堆借……直到有一堆够借。这相当于:那够借的一堆一次过借给前一堆,前一堆把剩下的借给前前一堆……

  • 0
    @ 2008-07-29 14:04:55

    对于楼下晓若冰最后一组数据没过我认为是定义的太小了 改成longint 试试

  • 0
    @ 2008-07-22 16:55:56

    开始用的是二分..没想到这么简单......

  • 0
    @ 2007-12-16 21:04:17

    谢谢楼下的告诉我Yartimy的题解,实在太厉害了.

    竟然把顺序的也写出题解,Yartimy写得通俗易懂.

    建议看一看!

    真羡慕啊

  • 0
    @ 2007-11-14 15:39:23

    经验教训:以后无论如何都要用longint代替integer!!!

    PS:LX的也犯了同样的错误...

  • 0
    @ 2007-11-05 19:53:50

    赞楼下Yartimy牛的题解,不仅讲解精当,还做了必要的延伸。

  • 0
    @ 2007-10-02 20:31:15

    编译通过...

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

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

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

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

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

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

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

    注意不能用 integer 要用 longint 不然过不了

  • 0
    @ 2007-09-30 20:59:23

    试验得移动的顺序对总的步骤数没有影响,就是想不通为什么...

    望哪位犇指点迷津

  • 0
    @ 2007-09-20 15:15:50

    晕..~~~~~~~~~~~

    为什么我在原来的代码中用INTEGER, 最后一个答案是错的,

    而我用LONGINT 就全部是对的啊!!!!!

    按理来说,VIJOS 应该告诉我201错误啊!

    怎么弄个错误的输出啊!再说,我都201错误了,读都读不进去,

    怎么回有输出啊!!!!!.......

    汗~~~~~~~~~~~~~~~~~~~~~~~~

  • 0
    @ 2007-09-19 12:41:23

    纯模,问题是,为什么从左到右依次模拟,即使出现负值,也不影响次数,哪位能点拨一下。

  • 0
    @ 2007-09-15 17:24:42

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2007-08-23 21:09:26

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2007-08-04 17:53:20

    fightfish同志的话太经典了,“只求次数,移动的牌数为负也没人知道

    ( 2007-8-2 16:25:10 ) ”

  • 0
    @ 2007-08-03 09:41:00

    这种题目弱了点,要是第1堆能移动到第N堆,第N堆能移动到第1堆,这样才好玩

  • 0
    @ 2007-08-02 16:25:10

    只求次数,移动的牌数为负也没人知道

  • 0
    @ 2007-07-29 21:47:56

    莫想难!

信息

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