hdu 2838 Cow Sorting
题意:
给出一个数组,要求把他们排成升序,两个数字交换的代价是x + y,求代价的总和。
思路:
简单的逆序对变形,树状数组维护小于的cnt和sum即可。
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + ;
const int M = ;
int a[N];
int c[N];
ll sum[N];
int lowbit(int x)
{
return x&(-x);
}
void addcnt(int x)
{
for (int i = x;i <= M;i += lowbit(i)) c[i]++;
}
int getcnt(int x)
{
int ans = ;
for (int i = x;i > ;i -= lowbit(i)) ans += c[i];
return ans;
}
void addsum(int x,int y)
{
for (int i = x;i <= M;i += lowbit(i)) sum[i] += y;
}
ll getsum(int x)
{
ll ans = ;
for (int i = x;i > ;i -= lowbit(i)) ans += sum[i];
return ans;
}
int main()
{
int n;
while (scanf("%d",&n) != EOF)
{
memset(c,,sizeof(c));
memset(sum,,sizeof(sum));
for (int i = ;i < n;i++)
{
scanf("%d",&a[i]);
}
ll tmp = ;
ll ans = ;
for (int i = ;i < n;i++)
{
int cnt = getcnt(a[i]);
cnt = i - cnt;
ll s = getsum(a[i]);
s = tmp - s;
ans += s + 1LL * cnt * a[i];
addcnt(a[i]);
addsum(a[i],a[i]);
tmp += a[i];
}
printf("%lld\n",ans);
}
return ;
}
hdu 2838 Cow Sorting的更多相关文章
- hdu 2838 Cow Sorting(树状数组)
Cow Sorting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- hdu 2838 Cow Sorting (树状数组)
Cow Sorting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 2838 Cow Sorting 树状数组求所有比x小的数的个数
Cow Sorting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 2838 Cow Sorting (树状数组+逆序对)
题目 题意:给你N个排列不规则的数,任务是把它从小到大排好,每次只能交换相邻两个数,交换一次的代价为两数之和,求最小代价 拿到这道题,我根本看不出这道题和树状数组有半毛钱关系,博客之,全说用树状数组做 ...
- HDU Cow Sorting (树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 Cow Sorting Problem Description Sherlock's N (1 ...
- Cow Sorting hdu 2838
Cow Sorting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- BZOJ1697: [Usaco2007 Feb]Cow Sorting牛排序
1697: [Usaco2007 Feb]Cow Sorting牛排序 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 387 Solved: 215[S ...
- Cow Sorting(置换群)
Cow Sorting Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6664 Accepted: 2602 Descr ...
- BZOJ_1697_[Usaco2007 Feb]Cow Sorting牛排序_贪心
BZOJ_1697_[Usaco2007 Feb]Cow Sorting牛排序_贪心 Description 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便于行 ...
随机推荐
- Java Web 禁用Cookie对Session的影响
如果客户端禁用了Cookie,那么服务端就不能得到Session了.因为通过Session ID来确定当前会话对应的服务端Session,而Session ID通过Cookie来传递,所以禁用Cook ...
- helm-chart5,模板和访问文件
提供的一些声明和使用命名模板段的操作: define在模板中声明一个新的命名模板 template导入一个命名模板 block 声明了一种特殊的可填写模板区域 首先,模板名称是全局的.如果声明两个具有 ...
- numpy中的广播
目录 广播的引出 广播的原则 数组维度不同,后缘维度的轴长相符 数组维度相同,其中有个轴为1 参考: 广播的引出 numpy两个数组的相加.相减以及相乘都是对应元素之间的操作. import num ...
- laravel之路由和控制器与视图
路由和控制器: : 路由与视图: 访问:
- ELK之使用packetbeat分析网络包流量
介绍 packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP.MySQL.Redis等.在实际使用中,通常和Elasticsearch以及kibana联合使用, ...
- 2018-2019-2 20165311《网络对抗技术》Exp5 MSF基础应用
<网络对抗技术>Exp5 MSF基础应用 实验目的 实验内容 一个主动攻击实践(ms08_067) 一个针对浏览器的攻击(ms11_050) 一个针对客户端的攻击(adobe_toolbu ...
- js表单反显
/* * 表单自动回显js * 依赖JQURY * 使用参考:$("#form1").form("load",{"id":"112 ...
- stm32直流电机驱动与测速代码配套视频资料
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- mongodb 笔记
1.java驱动下的mongo操作 1.1 数据库连接 package com.mongodb.text; import java.net.UnknownHostException; import c ...
- jmeter常用插件介绍
一.下载安装及使用 下载地址:jmeter-plugins.org 安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmete ...