题目背景

本题时空限制已经扩大

题目描述

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

和之前的要求不一样,比赛组委会关心的是这个排列的“总得意值”。一共有 n 只小鱼,总共有 n×(1+n)/2 个不同的区间。每个区间的得意值等于这个区间中符合“左边的一只鱼的可爱值比右边的一只鱼可爱值更大”的对数(其实就是区间逆序对数啦)。总得意值就是所有区间的“得意值”的和。现在要求输出“总得意值”是多少。

输入输出格式

输入格式:

第一行输入一个整数 n,表示鱼的数目。

第二行内输入 n 个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。

输出格式:

输出一个整数表示答案。

输入输出样例

输入样例#1: 复制

8
1 9 2 6 0 8 1 7
输出样例#1: 复制

106
输入样例#2: 复制

10
1 10 8 5 6 2 3 9 4 7
输出样例#2: 复制

270
输入样例#3: 复制

20
6 0 4 5 8 8 0 6 6 1 0 4 6 6 0 0 7 2 0 5
输出样例#3: 复制

3481


思路
小鱼比可爱我记得好像是个红题,为啥就加了一个括号,带上升级版就红的发紫了。。。
这题是个正常人都会想到逆序对,让后看了一下数据范围,这题是要杀人啊。这什么范围。。。。对出题人表示强烈的谴责。。。
考虑一组逆序对(a[i],a[j])(a[i],a[j])贡献了几次,不难发现贡献了i*(n - j + 1)i∗(n−j+1)次。
考虑怎么统计,通常求逆序对我们是让树状数组上的值+1+1,现在我们实际上只要把+1+1改成+(n - j + 1)+(n−j+1)就行了(想想乘法分配律就知道这是对的)。
那么接下来就是常规的离散化加树状数组
要是想满分要用int 128
但好像noip 不给用就没改,就放个60分的吧
 #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=;
long long n,a[maxn],b[maxn],c[maxn],tot,ans,f[maxn];
int lowbit(long long x)
{
return x&(-x);
}
void update(long long x,long long y)
{
while(x<=n)
{
c[x]+=y;
x+=lowbit(x);
}
}
int query(long long x)
{
long long ans=;
x--;
while(x)
{
ans+=c[x];
x-=lowbit(x);
}
return ans;
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b+,b++n);
int tot=unique(b+,b++n)-b-;
for(int i=;i<=n;i++)
{
f[i]=lower_bound(b+,b+tot+,a[i])-b;
}
for(int i=n;i>=;i--)
{
long long i1=i;
long long i2=n-i+;
ans+=(long long )(i1*query(f[i]));
update(f[i],i2);
}
cout<<ans<<endl;
return ;
}

 

七月月赛T3的更多相关文章

  1. 【BZOJ4956】lydsy七月月赛 I 乱搞

    [BZOJ4956]lydsy七月月赛 I 题面 题解:傻题,Floyd传递闭包即可~ #include <cstdio> #include <cstring> #includ ...

  2. 【BZOJ4953】lydsy七月月赛 F DP

    [BZOJ4953]lydsy七月月赛 F 题面 题解:设f[i][j]表示第i个强度取为j时的最小误差.那么每次转移时,我们只计算j'和j之间的像素点带来的误差,于是有: $f[i][j]=min( ...

  3. 【BZOJ4952】lydsy七月月赛 E 二分答案

    [BZOJ4952]lydsy七月月赛 E 题面 题解:傻题...二分答案即可,精度有坑. #include <cstdio> #include <cstring> #incl ...

  4. 【BZOJ4950】lydsy七月月赛 C 二分图最大匹配

    [BZOJ4950]lydsy七月月赛 C 题面 题解:比较直接的想法就是:每行,每列的最大值都留下,剩下的格子都变成1.但是如果一个格子既是行的最大值又是列的最大值,那么我们只需要把它留下即可.这就 ...

  5. luogu11月月赛T3咕咕咕(组合数学)

    题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠 ...

  6. 洛谷2019 3月月赛 T3

    题干 唯一AC T3 的大巨佬%%% 这题就是个大模拟吧. 题解

  7. 七月月赛T1

    题目背景 借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了! 题目描述 现有 2^n\times 2^n (n\le10)2n×2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 ...

  8. AC日记——松江1843路 洛谷七月月赛

    松江1843路 思路: 三分: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define ...

  9. AC日记——小A和uim之大逃离 II 洛谷七月月赛

    小A和uim之大逃离 II 思路: spfa: 代码: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f ...

随机推荐

  1. dubbo配置负载均衡、集群环境

    再用dubbo作为项目架构的时候,给consumer消费者用nginx提供了负载均衡策略和集群的实现, 但是想了下,consumer再多,但是提供者还是一个,最后还不都是落到了这一个provider上 ...

  2. python编程基础之十八

    字符串的查找和替换常用函数: str.count(sub,start = 0,end = len(str)) 计算sub 在str中出现的次数,[start,end)寻找区间 str.find(str ...

  3. Python 3.8.0 正式版发布,新特性初体验

    北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PEP 572: Assignment Expressi ...

  4. Cocos Creator实现大炮英雄,附代码!

    游戏预览 ​ 开始场景 ​ 搭建开始场景 摆放一个背景图,在背景图上添加背景地面.开始按钮.4个角色选择按钮.游戏logo. 创建游戏脚本 1. 实现开始按钮的回调,点击开始按钮,跳转到游戏场景.跳转 ...

  5. 《深入理解Java虚拟机》-----第12章 Java内存模型与线程

    概述 多任务处理在现代计算机操作系统中几乎已是一项必备的功能了.在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速 ...

  6. XGBoost: 你不能不知的机器学习算法

    XGBoost作为一个非常常用的算法,我觉得很有必要了解一下它的来龙去脉,于是抽空找了一些资料,主要包括陈天奇大佬的论文以及演讲PPT,以及网络上的一些博客文章,今天在这里对这些知识点进行整理归纳,论 ...

  7. 机器学习:weka源码在eclipse的配置和异常VerifyError的解决

    今天把weka源码导入eclipse,打算学习下weka源码,遇到一些问题,网上资料不足,自己总结下,希望为后来人铺路. 1)新建java项目,命名weka3-6 2)把weka-src.jar解压, ...

  8. 本地向服务器上传文件的方式-FTP工具上传

    笔者负责的一个研究生会的项目,向服务器端传项目代码,用到了FTP工具,这里总结下: FTP方式的步骤: 1,服务器端配置好FTP,(若没有,可网上下载一个服务器端安装的FTP).停止服务后,可以配置账 ...

  9. The All-in-One Note

    基础 操作系统 I/O 模型 阻塞式 I/O 模型(blocking I/O) 描述:在阻塞式 I/O 模型中,应用程序在从调用 recvfrom 开始到它返回有数据报准备好这段时间是阻塞的,recv ...

  10. Eureka error "java.net.UnknownHostException:

    spring cloud 中zuul智能路由,本地部署没有问题,部署到服务器就报com.netflix.zuul.exception.ZuulException: Forwarding error 项 ...