131 条题解
-
3猫粮寸断 LV 10 @ 2018-10-30 20:33:19
//差点就写了树状数组。。。但其实是有O(n+k)做法的 //题目中说到,主任位置是单调递增的,我们维护上一次查询的结果,之后可以将每次修改操作分为两种情况: //1.将要修改的点在主任前 //2.将要修改的点在主任后 //对于第一种情况,我们直接在上一次结果上进行操作 //对于第二种情况,我们将修改保存在一个数组中,每次主任的位置变动时,从其上一个位置往后扫 //由于位置单调递增,每个点至多被扫到一次,总复杂度O(n+k) //代码也很简洁 #include<cstdio> #include<iostream> using namespace std; int sum[500010]; int main() { char c; int n,k,i,j,m,p,now=0,num=0; scanf("%d%d",&n,&k); for(i=1;i<=k;i++) { scanf(" %c",&c); if(c=='A') { scanf("%d",&m); for(j=now+1;j<=m;j++) num+=sum[j]; now=m; printf("%d\n",num); } if(c=='B') { scanf("%d%d",&m,&p); sum[m]+=p; if(m<=now) num+=p; } if(c=='C') { scanf("%d%d",&m,&p); if(m<=now) num-=min(p,sum[m]); sum[m]=max(0,sum[m]-p); } } return 0; }
-
12021-03-17 15:04:39@
#include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <vector> #include <deque> using namespace std; namespace dts { int N,K; int rec[1<<19]; #define rec(x) rec[(x)-1] void main() { scanf("%d %d\n",&N,&K); int pos=0,ans=0; memset(rec,0,sizeof(rec)); for (int i=1;i<=K;i++) { int M,P; char O; scanf("%c %d ",&O,&M); if (O=='A') { for (;pos<M;pos++) ans+=rec(pos+1); printf("%d\n",ans); } else { scanf("%d\n",&P); if (O=='B') { rec(M)+=P; if (pos>=M) ans+=P; } else if (O=='C') { rec(M)-=P; if (pos>=M) ans-=P; } } } } }; int main() { dts::main(); }
-
02014-03-22 17:01:36@
编译成功
测试数据 #0: Accepted, time = 31 ms, mem = 2688 KiB, score = 10
测试数据 #1: Accepted, time = 15 ms, mem = 2688 KiB, score = 10
测试数据 #2: Accepted, time = 15 ms, mem = 2692 KiB, score = 10
测试数据 #3: Accepted, time = 124 ms, mem = 2688 KiB, score = 10
测试数据 #4: Accepted, time = 109 ms, mem = 2692 KiB, score = 10
测试数据 #5: Accepted, time = 156 ms, mem = 2692 KiB, score = 10
测试数据 #6: Accepted, time = 124 ms, mem = 2688 KiB, score = 10
测试数据 #7: Accepted, time = 156 ms, mem = 2692 KiB, score = 10
测试数据 #8: Accepted, time = 124 ms, mem = 2688 KiB, score = 10
测试数据 #9: Accepted, time = 140 ms, mem = 2692 KiB, score = 10
Accepted, time = 994 ms, mem = 2692 KiB, score = 100 -
02012-10-24 21:11:58@
├ 测试数据 01:答案正确... (0ms, 2536KB)
├ 测试数据 02:答案正确... (0ms, 2536KB)
├ 测试数据 03:答案正确... (0ms, 2536KB)
├ 测试数据 04:答案正确... (0ms, 2536KB)
├ 测试数据 05:答案正确... (0ms, 2536KB)
├ 测试数据 06:答案正确... (0ms, 2536KB)
├ 测试数据 07:答案正确... (0ms, 2536KB)
├ 测试数据 08:答案正确... (0ms, 2536KB)
├ 测试数据 09:答案正确... (0ms, 2536KB)
├ 测试数据 10:答案正确... (0ms, 2536KB)---|---|---|---|---|---|---|---|-
Accepted / 100 / 0ms / 2536KB去你妹的输出格式!
write(sum)错了
writeln(sum)错了
write(sum,' ')错了
write(sum,' ')
……
writeln对了!
害我WA了3次!
去你妹的输出格式! -
02012-10-07 16:11:58@
同志们,不要信题目,不要信样例。楼下有人说最后不加writeln也过,那是对的。
一开始只write,没过;
在程序最后加了个writeln,没过;
改成write(tot,' ');,过了……
只要在输出时加空格就行了 -
02010-07-22 18:36:29@
真是Vag 6K才能A啊
1.write(sum,' ')
2.最后+writeln
3.有下车(C)情况
4.纯模拟 -
02009-11-07 14:31:45@
各位牢记
输出全在一行
最后writeln!!!!!!
我悲剧了n次 -
02009-10-27 18:58:53@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 56ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:56ms -
02009-10-27 18:31:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 72ms
├ 测试数据 06:答案正确... 25ms
├ 测试数据 07:答案正确... 25ms
├ 测试数据 08:答案正确... 87ms
├ 测试数据 09:答案正确... 40ms
├ 测试数据 10:答案正确... 72ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:321ms
心破了,呜呜~~~~~~~~ -
02009-10-11 11:03:16@
交了n次 原来输出时没有空格 郁闷
另外
这是 sunny 的
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 72ms
├ 测试数据 05:运行超时|格式错误...
├ 测试数据 06:运行超时|格式错误...
├ 测试数据 07:运行超时|格式错误...
├ 测试数据 08:运行超时|格式错误...
├ 测试数据 09:运行超时|格式错误...
├ 测试数据 10:运行超时|格式错误...
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:40 有效耗时:72ms
而 同一个程序
puppy 却
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
汗…… -
02009-09-25 21:32:52@
不知道怎么就ac了。
此题刷掉我两个百分点。 -
02009-09-21 19:38:29@
为什么我偏偏交了3次。。。
P.S.
此题甚是猥琐。。并且甚是海洋。。 -
02009-09-20 10:46:52@
vj老这样就没意思了,数据输出一直出问题.不过没事,大家都多交一次-_-|||
-
02009-09-07 16:44:37@
郁闷……
看到水题太激动了,居然忘了有下车的情况,白白浪费我一次提交…… -
02009-08-26 13:35:26@
因为M是递增的,所以每次对于A的询问,把前面求和的值保存下来,不必重复计数,可以秒杀。
-
02009-08-25 14:03:14@
VIJOS的题太坑人……不是输出有问题就是精度很猥琐……害得我的通过率从最初的67%掉到现在的52%……我真的很无语……
这道题一定要在后面加writeln;!!!
否则有些人30,有些人50,有些人爆0……编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-08-14 16:01:09@
这个输出方法真的好扭曲,换行多好看啊.......
-
02009-08-12 20:27:04@
我无语了!数据有问题!
记住write和writeln!
---|---|---|---|---|---|---|---|---|-
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-08-10 23:45:44@
- -
一开始重新写,30...
拿去年过puppy的程序交,50~70...还以为puppy比去年慢了
看了walala的题解...加了个writeln
结果...0ms
我@#$%^&
- -
-
02009-08-08 09:48:08@
var n,m,x,y,b,c,r,l:longint;
s:string;
a:array[1..500000] of longint;procedure split;
var tmp:string;
begin
delete(s,1,2);
if pos(' ',s)0 then
begin
tmp:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
end
else
begin
tmp:=copy(s,1,255);
s:='';
end;
val(tmp,x);
if s'' then val(s,y);
end;begin
readln(n,m);
r:=0;
l:=1;
fillchar(a,sizeof(a),0);
for b:=1 to m do
begin
readln(s);
case s[1] of
'A':
begin
split;
for c:=l to x do
r:=r+a[c];
l:=x+1;
write(r,' ');
end;
'B':
begin
split;
if x