48 条题解
-
1zrzluck99 LV 9 @ 2017-08-04 21:51:05
骗分导论好
var a,n,c,i:longint; k,tot:int64; begin readln(a,k,c); tot:=k*(k+1) div 2; for i:=1 to k do begin read(n); dec(tot,n); end; writeln(tot); end.
-
02016-05-22 14:19:50@
Var a:Array[0..100001] of longint;
Iris,Tt:int64;
n,k,t,i:longint;
Begin
Read(n,k,t);
For i:=1 to k do
Begin
Read(Tt);
Inc(a[Tt]);
End;
For i:=1 to k do
if (a[i]=0) Or (a[i]=1) Then Continue Else
Begin
Iris:=Iris+a[i]-1;
a[i+1]:=a[i+1]+a[i]-1;
End;
Writeln(Iris);End.
-
02012-08-14 22:03:18@
60 ac
留念 -
02010-07-09 17:28:01@
从特殊情况开始考虑
假使 前T个入场的人 恰好拿了T张不同的入场卷,不发生争吵(题目已交代1——T每个号码的票 都存在)。后K-T个人入场时第(t+1)个人一定坐在第(t+1)个位置 ,顺序 先后无入场顺序并无关系。
那么 假使前T个人中 有 1个人 拿的是 重复的票(即前T人中 号码P有两张)而第二个拿票P的人坐在了位置Q。则坐满前T个位置发生争吵数是Q-P。则后K-T个人中必定多了一人拿Q票,减少的争吵数是Q-P。 所以 前T个人是否拿了重复票才坐满T个位置 和争吵数无关。
那么,入场顺序与争吵数 无关。所以从一种情况考虑即可。
S表示第I 个人拿的座位号。
S[1]-S[T] 分别为1-T
sum=0(前T个人)+(T-S[T+1]+1)+(T+1-S[T+2]+1)+(T+2-S[T+3]+1)……(K-1-S[K]+1) (从第T+1个到第K个人)
弱弱的代码:
program faf;
var i,j,n,m,k,t,a:longint;
sum:int64;
hash:array[1..100000] of boolean;
begin
read(n,k,t);
for i:=1 to k do
begin
read(a);
if not hash[a] then
hash[a]:=not hash[a]
else
begin
inc(t);
sum:=sum+t-a;
end;
end;
writeln(sum);
end. -
02010-03-14 12:48:39@
Accepted 有效得分:100 有效耗时:0ms
其实很简单,如果题目提示在改成"1,2,3,1,2"就更简单了……
因为t个座位全是有人的,就先让这t个人坐在位置上,然后剩下的人从左到右矛盾坐过去就好了,可以证明这是最优值的,不过证明这里就免了……
By the way,以防万一答案最好用int64…… -
02009-10-23 17:24:03@
Accepted 有效得分:100 有效耗时:0ms
___|\__|\__|\__|\__|begin\__|\__|\__|\_|_
经无数实践证明怎么样的答案都一样
所以排序一下用刷一遍就可以过了
—————————^^———————————————
不知道刷的话自己模拟一遍很容易就知道了
___|\__|\__|\__|\__|end.\__|\__|\__|\__|__ -
02009-10-19 17:43:20@
lijian3256牛说得非常正确
把t以内的空可以直接填满,
然后逐个统计,不需要排序。编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-10-08 08:25:25@
上帝给了我张衰神卡
-
02009-09-07 20:32:34@
类似于桶排计数的思想!!!!不要想复杂了!!!!
---|---|---|---|---|---|---|---|超囧的分割线---|---|---|---|---|---|---|---|---|
好吧......结果需要用int64.....吐血..... -
02009-09-04 21:48:13@
1+2+3+...+k-s[1]-s[2]-...-s[k]即可
-
02009-08-13 20:56:41@
program peidui;
var n,k,t,i,q:longint;
a:array[1..1000000] of qword;
num:int64;
begin
readln(n,k,t);
for i:=1 to k do
read(a[i]);
num:=0;
for i:=1 to k do
num:=num+a[i];
num:=num-(n*(n+1))div 2
writeln(num);
end. -
02009-08-12 23:28:56@
水到极点。。。
无语ing...
快排加累计求差即可过。。。。
竟然一次AC,汗————— -
02009-07-31 19:43:55@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
果然WS
这t个座位号中的每一个都在入场券中至少出现了一次
让一切变的简单。。
说得好 -
02009-07-29 15:11:07@
详见骗分导论
-
02009-05-02 21:38:00@
回dk674你看看1 3 2 3是不是应该是0001,底下的证明米有错,飘过……另外表达对matrix67的崇敬
-
02009-04-16 08:27:36@
这t个座位号中的每一个都在入场券中至少出现了一次
让一切变的简单。。 -
02009-03-24 17:59:42@
多谢huangdatou,
所有的变量改成qword后提交(除了循环变量). -
02008-10-22 21:40:46@
-
02008-10-12 21:19:59@
我.............................
得60分的各位注意了!!!!!
把你们的所有的变量改成qword后提交吧!!!!(除了循环变量)
你会发现此题变成Accepted了 -
02008-09-22 22:06:22@
边读边计算结果。
1次性AC。