135 条题解
-
-1!TNT! LV 8 @ 2016-02-19 21:38:58
求解为啥?
c++
#include<stdio.h>
#define LB(x) (x&-x)
int a[50010],b[50010],n,m;
void add(int s[],int x){
for(;x<=n;x+=LB(x))
s[x]++;
}
int query(int s[],int x){
int ans=0;
for(;x;x-=LB(x))
ans+=s[x];
return ans;
}
int main(){
scanf("%d%d",&n,&m);
for(int t,l,r,i=0;i<m;++i){
scanf("%d%d%d",&t,&l,&r);
if(t==1){ add(b,r); add(a,l); }
else printf("%d\n",query(a,r)-query(b,l-1));
}
}
-
-12008-09-16 20:59:22@
用树状数组,快且简单,不过格式错误。。。
改成不换行输出:
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 9ms
├ 测试数据 09:答案正确... 9ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:18ms郁闷!
-
-12008-09-15 13:00:12@
漂亮的树状数组....
-
-12008-09-15 12:56:22@
50000的nlogn比赛40
再交70
再交80
……………………更新:
才发现我maxn=501000………………………… -
-12008-09-15 09:52:29@
我理解错题目了么??如果种树段有重叠是怎么算?把原来的树T掉?还是保持原来位置?还是再种新的一棵?
-
-12008-09-15 13:31:41@
问大家一下:这道题到底应该怎么做啊?
-
-12008-09-15 08:39:20@
有史以来通过率最低的题可能要产生了
-
-12008-09-16 12:40:14@
题解:
在l处添加一个左括号,在y处添加一个右括号。
ans=1~r的左括号-1~l-1的右括号
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 25ms
├ 测试数据 07:答案正确... 712ms
├ 测试数据 08:答案正确... 1400ms
├ 测试数据 09:答案正确... 3666ms
├ 测试数据 10:答案正确... 3744mswith tiger
PS:同志们一定要write啊!!
-
-12008-09-15 07:18:17@
线段树?
-
-12008-09-15 12:19:58@
终于AC了,
同一个程序不同的评测机,比赛时只有60分,。。。。。。。
看看现在的效率,就知道doplin有多么烂了
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 25ms
├ 测试数据 08:答案正确... 56ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 9ms -
-12008-10-10 15:25:24@
完全一样的程序,都是Lora Temper评测机,结果竟然还能不一样
-
-12008-09-14 17:19:23@
orz
-
-22015-04-29 19:30:16@
弱弱的问一句。。。这题用线段树肿么解啊?
-
-22015-01-22 13:01:41@
编译成功
Free Pascal Compiler version 2.6.4 [2014/03/06] for i386
Copyright (c) 1993-2014 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling foo.pas
foo.pas(12,39) Warning: Variable "l" does not seem to be initialized
foo.pas(13,39) Warning: Variable "r" does not seem to be initialized
Linking foo.exe
19 lines compiled, 0.1 sec , 28224 bytes code, 1628 bytes data
2 warning(s) issued测试数据 #0: Accepted, time = 0 ms, mem = 1120 KiB, score = 1
测试数据 #1: Accepted, time = 0 ms, mem = 1124 KiB, score = 1
测试数据 #2: Accepted, time = 46 ms, mem = 1124 KiB, score = 1
测试数据 #3: Accepted, time = 109 ms, mem = 1124 KiB, score = 1
测试数据 #4: Accepted, time = 265 ms, mem = 1124 KiB, score = 1
测试数据 #5: Accepted, time = 250 ms, mem = 1124 KiB, score = 1
测试数据 #6: Accepted, time = 1843 ms, mem = 1128 KiB, score = 1
测试数据 #7: Accepted, time = 3390 ms, mem = 1128 KiB, score = 1
测试数据 #8: Accepted, time = 8437 ms, mem = 1124 KiB, score = 1
测试数据 #9: Accepted, time = 8546 ms, mem = 1124 KiB, score = 1
Accepted, time = 22886 ms, mem = 1128 KiB, score = 10
var
l,r:array[1..50001]of longint;
n,m,i,j,x,y,k:longint;begin
readln(n,m);
for i:=1to m do
begin
read(k);
if k=1 then begin
readln(x,y);
for j:=1to x do inc(l[j]);
for j:=1to y do inc(r[j]);
end
else begin
readln(x,y);
writeln(r[x]-l[y+1]);
end;
end;
end.╮(╯▽╰)╭
-
-32009-06-10 20:57:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms第一次做线段树就一次秒杀了^_^