题解

135 条题解

  • 0
    @ 2009-07-29 11:50:24

    括号序列+树状数组果然牛!

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    评测机是Vijos Dragon

  • 0
    @ 2009-07-22 17:09:28

    树状数组和线段树 都 用过了

    速度还是线段树快

    理论讲 应该差不多

    但不知道为什么

  • 0
    @ 2009-07-16 21:46:26

    线段树……

    沙茶题留名……

  • 0
    @ 2009-06-19 16:32:05

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    括号序列真牛逼。。。我无聊写的线段树,可惜了那个9ms。。。

    写线段树是因为,刚开始理解错题意,以为是区间加法和区间最大值。。。我沙茶~

  • 0
    @ 2009-06-17 08:16:49

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    括号匹配+两个树状数组……

    我shax了,树状数组更新区间括号数时将

  • 0
    @ 2009-06-10 19:10:28

    神奇的括号法。

    贴个垃圾的线段树

    program vijos1448;

    const

    maxn=50002;

    type

    node= record

    ls,rs,a,b,zkh,ykh:longint;

    end;

    var

    p:array[1..maxn*2] of node;

    all,ansz,ansy:longint;

    procedure creat(c,d:longint);

    var

    now,mid:Longint;

    begin

    inc(all);

    now:=all;

    p[now].a:=c; p[now].b:=d;

    if c

  • 0
    @ 2009-06-02 13:46:31

    编译通过...

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

    ├ 测试数据 02:答案错误...程序输出比正确答案长

    ├ 测试数据 03:答案错误...程序输出比正确答案长

    ├ 测试数据 04:答案错误...程序输出比正确答案长

    ├ 测试数据 05:答案错误...程序输出比正确答案长

    ├ 测试数据 06:答案错误...程序输出比正确答案长

    ├ 测试数据 07:答案错误...程序输出比正确答案长

    ├ 测试数据 08:答案错误...程序输出比正确答案长

    ├ 测试数据 09:答案错误...程序输出比正确答案长

    ├ 测试数据 10:答案错误...程序输出比正确答案长

    什么原因????

    寻求大牛帮助

  • 0
    @ 2009-04-04 20:40:12

    编译通过...

    ├ 测试数据 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-03-31 16:52:19

    编译通过...

    ├ 测试数据 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-03-31 13:46:32

    编译通过...

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

    ├ 测试数据 02:运行时错误...| 错误号: 202 | 堆栈溢出错

    ├ 测试数据 03:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 04:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 05:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 06:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 07:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 08:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 09:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 10:运行时错误...| 错误号: 216 | 存取非法

    ????????????????????

    type arr=array[1..2000000]of longint;

    var a,b:arr;

    k,i,n,m,l,r,x,len,o,p

    :longint;

    function max(a,b:longint):longint;

    begin

    if a>b then max:=a

    else max:=b;

    end;

    procedure jian(p,x,y,xx:longint;var a:arr);

    var mid:longint;

    begin

    inc(a[p]);

    if x=y then exit;

    mid:=(x+y)shr 1;

    if xx>mid then jian(p shl 1+1,mid+1,n,xx,a)

    else jian(p shl 1,x,mid,xx,a);

    end;

    function count(p,x,y,x1,y1:longint;var a:arr):longint;

    var mid:longint;

    begin

    if (x1

  • 0
    @ 2009-03-27 15:46:58

    编译通过...

    ├ 测试数据 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-03-19 22:51:45

    要开两个树状数组,思想前面的大牛已经说了。

    for i:=1 to m do

    begin

    readln(j,a1,b1);

    if j=1 then begin add(1,a1,1); add(2,b1,-1); end

    else writeln(query(1,b1)+query(2,a1-1));

    end;

  • 0
    @ 2009-03-19 20:39:06

    线段树写习惯了……

  • 0
    @ 2009-03-16 12:53:25

    注意到Lowbit数组应当为longint格式,否则可能变成 -maxint (-32768)……

  • 0
    @ 2009-03-09 13:47:11

    编译通过...

    ├ 测试数据 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-03-02 12:38:47

    编译通过...

    ├ 测试数据 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-02-27 22:25:43

    显然是树状数组,这种题目做多了,不做了

  • 0
    @ 2009-03-17 15:54:55

    引用吴豪大牛:

    这题看起来和树状数组没什么关系,不过我们通过一定

    的转化,可以利用树状数组很好地解决这个问题。

    我们不妨把所有线段的端点看成括号序列,即把询问的

    区间[lq,rq]看成在横坐标lq处的一个‘[’和rq处的‘]’, 即把插

    入的线段[li,ri]看成在横坐标li处的一个‘(’和ri处的‘)’。

    稍作分析,我们不难发现,最后的答案等于‘]’左边‘(’

    的个数减去‘[’左边‘)’的个数。

    那么我们现在做的就是对某个点做修改,对某个前缀求

    和。我们就可以很容易想到树状数组的做法:

    1.建立两个树状数T1和T2,分别维护‘(’和‘)’。

    2.若K=1,读入li,ri,plusT1(li,1),plusT2(ri,1)。

    3.若K=2,读入lq,rq,sumT1(rq-1)-sumT2(lq-1)

  • 0
    @ 2009-02-21 18:39:03

    万恶的评测机!为什么用write过,writeln不过?

    害我白交了4次!!!!!

  • 0
    @ 2009-02-11 14:57:41

    用的是个极度委琐的线段树,看下面大牛的方法果然神奇

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

信息

ID
1448
难度
6
分类
数据结构 | 线段树 点击显示
标签
递交数
2920
已通过
872
通过率
30%
被复制
6
上传者