题解

62 条题解

  • 7
    @ 2017-08-18 02:14:40

    本题读懂了就会发现很水,没读懂就会无从下手。
    证明:

    因为输入数据保证有解,假设有两只螃蟹a,b初始横坐标为x1,x2且x2-x1=1,则在任意时刻a,b都将向同一方向运动,即永远不能抓a和b,与题意不符。那么有没有可能两只螃蟹在中途走到一起?设x2-x1=2,由上面的证明x1+1的位置上无螃蟹,即x1,x2不能向对方移动。因此任何一只螃蟹在任何时刻都能被抓到。证毕。
    方案:从两头向中间输出即可

    就是在头上抓一个,在相应的另一边抓一个,这样中间的螃蟹就左走,后右走,相当于不变

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n/2;i++)
            printf("%d\n%d\n",i,n-i+1);
        if(n%2==1) 
            printf("%d",n/2+1);
        return 0;
    }
    
    
  • 1
    @ 2009-07-31 22:20:04

    想知道描述...

    想知道2楼的证明是怎么来的...

  • 0
    @ 2017-07-18 15:41:14

    var n,i:longint;beginreadln(n);for i:=1 to (n div 2) do begin writeln(i);writeln(n-i+1);end;if n mod 2=1 then writeln(n div 2+1);end.
    本题读懂了就会发现很水,没读懂就会无从下手。看你语文好不好了。以上是Pascal的压缩代码。

  • 0
    @ 2014-10-01 22:02:50

    呵呵

  • 0
    @ 2014-08-18 20:59:51

    大概 只和n有关吧 因为坐标是排好序的 不知道出题人什么心态 ORZ

    #include<iostream>
    using namespace std;
    long long int a,b,n,m;
    int main()
    {
    cin>>n;
    for(int i=1;i<=2*n;i++)
    {
    cin>>m;
    }
    for(a=1;a<=n;a++)
    {

    if(a%2==1)
    cout<<(a/2)+1<<endl;
    else
    cout<<n-(a/2)+1<<endl;
    }

    //system("pause");
    return 0;
    }
    //1 n 2 n-1 3 n-2

  • 0
    @ 2014-04-07 19:11:59

    water problem……
    好难啊,比A+B problem难那么一点啊一点啊一点啊一点啊一点啊一点啊一点啊一点啊一点啊一点啊……
    强烈鄙视出题者,水题能出成这样也算NB了……
    var n,a:longint;

    begin
    read(n);
    for a:=1 to (n div 2) do
    begin
    writeln(a);
    writeln(n-a+1);
    end;
    if (n mod 2)=1 then write(n div 2+1);
    end.

    记住是longint,否则要爆

  • 0
    @ 2012-08-17 19:46:46

    跟我们玩文字游戏

    ~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~

    终于读懂了

    读懂好做了

    好做直接Ac了

    ~~~~(>_

  • 0
    @ 2012-07-27 10:39:35

    给这题跪了,本来以为是贪心动归啥的,看了眼类型后突然明白过来了

    神题无误

  • 0
    @ 2010-04-16 19:30:00

    楼上那个太丑了,没有发言权。

  • 0
    @ 2010-04-16 19:29:43

    太水了,直接在框里打程序,结果begin打错了,悲剧啊,我可怜的AC率!

  • 0
    @ 2009-11-10 15:35:29

    額,無語

  • 0
    @ 2009-11-02 22:54:30

    Water!Water!

    悲剧死了!

  • 0
    @ 2009-09-05 22:42:57

    坐标还是排序好的………… 太水了吧。

  • 0
    @ 2009-08-15 17:11:59

    SK!!!!

  • 0
    @ 2009-08-05 10:46:49

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    type

    int=longint;

    var

    i,n:int;

    begin

    readln(n);

    for i:=1 to (n div 2) do

    begin

    writeln(i);

    writeln(n-i+1);

    end;

    if (n mod 2) =1 then writeln(n div 2+1);

    end.

    好难啊…………

  • 0
    @ 2009-08-05 00:39:37

    我怎么看不出哪里是题目?

    看了题解以后,个人认为,这题该算是二楼大牛出的

  • 0
    @ 2009-08-03 22:27:07

    比a+b problem难那么一点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点.........点点点点

    第一次竟然还TLE,又浪费一次...晕

    var n,a:integer;

    begin

    read(n);

    for a:=1 to n div 2 do

    begin

    writeln(a);

    writeln(n-a+1);

    end;

    if n mod 2=1 then write(n div 2+1);

    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
    @ 2009-06-30 20:59:41

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    本来自信满满的直接在提交框上打,结果wa了两遍,╮(╯▽╰)╭不是牛还称牛

    强题留名

  • 0
    @ 2009-06-30 20:48:46

    看题花了近半个小时,敲程序只用了五分钟不到,一次AC,水啊~~~

  • 0
    @ 2009-06-03 00:24:56

    一共n行,每行一个螃蟹编号,表示sk取螃蟹的先后序列。如有多解,输出第一个编号最小的,如果第一个编号相同,输出第二个编号最大的,再相同,输出第三个编号最小的......

    原来这就是题目......Orz

    第一个螃蟹编号最小的是1

    第二个螃蟹要编号最大的当然是n

    第三个螃蟹编号要最小又不能是1,就选2

    ......

    只读入N

    输出1,n,2,n-1......就行了......

    Orz!!!!!!!!!!!!!!!!!!!!!!!!!!!

信息

ID
1290
难度
2
分类
贪心 | 其他 | 数学 点击显示
标签
(无)
递交数
1138
已通过
691
通过率
61%
被复制
3
上传者