博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YYHS-NOIP2017Training0921-逆光
阅读量:7103 次
发布时间:2019-06-28

本文共 1286 字,大约阅读时间需要 4 分钟。

题目描述

有一束光/那瞬间/是什么痛得刺眼/你的视线是谅解/为什么舍不得熄灭/我逆着光却看见/那是泪光/那力量/我不想再去抵挡/面对希望/逆着光/感觉爱存在的地方/一直就在我身旁

Description

Zyh养着n盆太阳花,它们被排在一列直线上。为了简化问题,太阳花的朝向只有向左和向右这两种。Zyh非常喜欢这些花,于是他在每盆花的上方放置了光源。

太阳花和Zyh幸福地生活着,然而每次要关掉这些光源的时候就会出现一个问题。因为Zyh的动作问题,他每次只能关掉一个光源,在关掉这个光源后,这个光源下方的花就会休眠。然而,对于每一个未休眠的太阳花,如果它的朝向向左,那么每看到一个在它左边的光源关闭,它就会认为自己的人生有些黑暗,于是对Zyh的好感减1。同样地,如果它的朝向向右,那么每看到一个在它右边的光源关闭,也会导致它对Zyh的好感减1。

Zyh不想看到太阳花对他的好感下降太多。于是他想知道关掉所有灯后,太阳花下降的好感总值是多少。

输入

输入包含两行。第一行是一个数正整数n表示太阳花的盆数。然后第二行是n个由空格隔开的0或1。0表示向左,1表示向右。

输出

只有一个数,太阳花下降的好感总值。

样例输入

5 0 0 0 1 0

样例输出

1

提示

Case two

Input

5

1 0 1 0 1

Output

3

Hint

对于30%的数据 n<10

对于70%的数据 n<=5000

对于100%的数据 n<=1000000

题解

这道题0表示朝左,1表示朝右

首先我们考虑0 1的情况,这样下降的好感度是为0的,而1 0是需要下降1好感度的

再来一个样例1 0 0 0,这样需要下降3好感度,相信大家已经想到了一些

通过这几个样例可以发现

关掉1,下降的好感度是它右边的0的个数

关掉0,下降的好感度是它左边的1的个数

所以不管关0还是1,下降的好感度就是逆序对的个数

所以答案就是逆序对个数,因为数为0或1,所以我们可以预处理

sum[i]表示1~i中1的个数,每次判断朝向为0,ans+=sum[i]即可 注意ans要开long long

1 #include
2 #define ll long long 3 #define N 1000005 4 using namespace std; 5 int n,x; 6 ll ans; 7 int sum[N]; 8 int main(){ 9 scanf("%d",&n);10 for (int i=1;i<=n;i++){11 scanf("%d",&x);12 sum[i]=sum[i-1]+x;13 if (!x) ans+=sum[i];14 }15 printf("%lld\n",ans);16 return 0;17 }
View Code

 

转载于:https://www.cnblogs.com/zhuchenrui/p/7573081.html

你可能感兴趣的文章
使用BIOS进行键盘输入和磁盘读写01 - 零基础入门学习汇编语言75
查看>>
数据库基础小结
查看>>
在mybatis中,在列表分页查询过程中造成集合属性数据丢失的问题
查看>>
easyui tabs页签显示在底部属性
查看>>
[Spring入门学习笔记][maven]
查看>>
Swift Enum 枚举
查看>>
java运行时could not open ........jvm.cfg问题的解决
查看>>
详解Objective-C的meta-class
查看>>
VScode格式化vue文件
查看>>
Java - 集合框架
查看>>
C6000系列之C6455 DSP的EMIFA接口
查看>>
POJ 1050 To the Max
查看>>
浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户
查看>>
2-9
查看>>
SpringMVC (四)MultiActionController
查看>>
unity_粒子系统
查看>>
初识linux内核漏洞利用
查看>>
HDU - 6393 Traffic Network in Numazu(树链剖分+基环树)
查看>>
HDU 3826 Squarefree number
查看>>
python数据分析实战---基础准备
查看>>