170 条题解

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

    简单~

    用一个布尔数组记录男生的访问,初始置F,K 为距离(初始为1)。

    倒着循环,再没有找到第一个没被标记的男生时K加1,直到找到第一个没有被标记的男生,标记他输出K,就是离女生最近的那个男生,并且break,不再向后寻找~ 换下一个女生。

    for i:=1 to n do

    begin

    k:=1;

    for j:=a[i] downto 1 do

    if not(b[j]) then begin

    b[j]:=true;

    if in then

    write(k,' ')

    else write(k);

    break;

    end

    else inc(k);

    end;

  • 0
    @ 2008-09-08 23:34:18

    哎。。题解看多了。。。如此水题也要花我一晚上

    老喽。。。

    for i:= 1 to n do

    if b[i] > 0 then begin write('1 '); dec(b[i]); end

    else begin

    j:=1; flag:=true;

    while (j < i) and flag do

    begin

    if b > 0 then begin write(j+1,' '); flag:=false; dec(b); end;

    inc(j);

    end;

    end;

    统统0MS的说。。。

  • 0
    @ 2008-09-04 20:50:39

    用两个数组

    分别记录i个女生左边的男生数(a数组)和每个女生间剩下没匹配的男生数(b数组)

    若 b>0 直接输出1

    若 b=0 回头搜索没匹配的 输出

    O(0.5n*n) 最坏情况

  • 0
    @ 2008-09-03 23:19:56

    不知道是不是我太菜了,感觉这道题不太好想。看似很简单,但我想了很长时间。写起来倒是没什么困难。

  • 0
    @ 2008-09-02 23:52:44

    都没发现。。。我居然是第3000个体教的人

  • 0
    @ 2008-08-30 10:33:20

    数组还是大点好

  • 0
    @ 2008-08-22 20:42:50

    我是用栈模拟的,想起来好像蛮麻烦,其实写起来没几行。

    int st[2501]; //数组模拟栈

    int zz=0; //指示栈顶编号

    int ns=0; //记录多少个男生进过栈,来确定男生编号

    void boy() //男生进栈

    {

    zz++;

    ns++;

    st[zz]=ns;

    }

    void girl() //女生进栈

    {

    cout

  • 0
    @ 2008-08-09 16:05:18

    编译通过...

    ├ 测试数据 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-08-08 15:28:51

    感觉和左右括号的匹配有点像……

    ()((()))(((()))())

  • 0
    @ 2008-08-06 20:31:45

    // 1062

    // 比较诡异的模拟

    // 用栈,每次入栈的个数,

    // 是后一个减去前一个之差

    // 然后再弹出一个

    // 每次入栈的时候

    // 新来的一岁

    // 老的会变老一岁

    // 弹栈的时候就输出年龄

    // 就是题目所求了

    // 画个图很容易理解

    // 复杂度 O(n*(n+1)/2) n

  • 0
    @ 2008-08-05 15:05:03

    这题我用栈来处理:

    设女生左边的男生人数为a[i],

    先将输出第一个女生左边人男生人数1,再将a[1]-1个男生压栈,b[i]=1,

    然后从2循环到n,每次取出一个男生,输出b[i]+1;

    给栈中的每一个男生b[i](已经出栈的男生人数)+1

    注:此题数据范围有误

  • 0
    @ 2008-08-03 20:31:20

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第1000个通过!!!!!

  • 0
    @ 2007-12-12 21:54:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    竟然把数组定义成1000,怪不得只有40

  • 0
    @ 2007-11-09 16:28:14

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2007-10-23 15:27:29

    总觉得是special judge。。

  • 0
    @ 2007-10-20 21:30:02

    最后一个点超时了,谁知道数据或为什么?

  • 0
    @ 2007-10-10 23:06:06

    楼下...很牛很强大......

  • 0
    @ 2007-10-02 13:51:09

    回答下面的‘追忆惘然’:

    在男生里面会有许多男生没有舞伴,所以队列不能只开2*n,而要开大点。

  • 0
    @ 2007-09-28 22:33:34

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    还是不明白阿,为什么数组开小了会超时?开到那么大的数组有什么用?

    哪位大牛能说一下?

  • 0
    @ 2007-09-09 18:14:00

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

信息

ID
1062
难度
4
分类
数据结构 | 点击显示
标签
递交数
3524
已通过
1406
通过率
40%
被复制
12
上传者