【NOIP2014模拟9.9】逆光 (Standard IO)

题意:

一些向右向左的花,把他们全部搞掉,如果被搞掉的被一朵花看到那么就会好感度减一,问你一共会减多少。花少于2000000

思路:

简单一想,他们只有><才会被看到,>>,<<,<>都不会被看到,那么就是求有多少个><这样的匹配,还是会超时,只需要>做一下前缀和就好了。

程序:

const
 maxn=1000000;
var
 a,f,b:array [0..maxn] of longint;
 i,j,n:longint;
 ans:int64; 
procedure qsort(l,r:longint);
var
 i,j,mid:longint;
begin
 i:=l; j:=r;
 mid:=f[(l+r) div 2];
 while i<j do
 begin
  while f[i]>mid do inc(i);
  while f[j]<mid do dec(j);
  if i<=j then
  begin
   f[0]:=f[i];
   f[i]:=f[j];
   f[j]:=f[0];
   b[0]:=b[i];
   b[i]:=b[j];
   b[j]:=b[0];
   inc(i); dec(j);
  end;
 end;
 if l<j then qsort(l,j);
 if r>i then qsort(i,r);
end;

begin
 readln(n);
 for i:=1 to n do
 begin
  read(a[i]);
  b[i]:=i;
  if a[i]=1 then f[i]:=f[i-1]+1
            else f[i]:=f[i-1];
 end;
 for i:=1 to n do
  if a[i]=0 then ans:=ans+f[i-1];
 writeln(ans);
end.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值