uva 1428
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4174
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL;
const int maxn = + ;
int a[maxn],s[maxn];
LL b[maxn];
int iNum; void add(int x,int v)
{
while (x<=iNum)
{
s[x]+=v;
x += lowbit(x);
} } int sum (int x)
{
int ret = ;
while (x>)
{
ret += s[x];
x -= lowbit(x);
}
return ret;
}
int main()
{ int T;
cin >> T;
while (T--)
{
int n;
cin >> n;
memset(s, , sizeof(s));
for (int i = ;i<=n;i++)
{ cin >> a[i]; iNum = max(iNum,a[i]);
} for (int i = ;i<=n;i++)
{ b[i] = sum(a[i]-);
add(a[i],);
}
LL ans = ;
memset(s,,sizeof(s));
for (int i = n;i>;i--)
{
LL d = sum(a[i]-);
add(a[i],);
ans += (b[i] * (n - i - d)) + d * (i - - b[i]); }
cout << ans << endl;
}
return ;
}
uva 1428的更多相关文章
- UVA 1428 - Ping pong(树状数组)
UVA 1428 - Ping pong 题目链接 题意:给定一些人,从左到右,每一个人有一个技能值,如今要举办比赛,必须满足位置从左往右3个人.而且技能值从小到大或从大到小,问有几种举办形式 思路: ...
- uva 1428 - Ping pong
树状数组,把他们的技能值作为轴: 首先按照编号从小到大插入值,这样就可以得到,技能值比当前小的人数: 然后按照编号从大到小再插一遍: 代码: #include<cstdio> #inclu ...
- 51Nod 1428 活动安排问题
51Nod 1428 活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
- UVA数学入门训练Round1[6]
UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...
随机推荐
- nodejs学习笔记<五>npm使用
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题. 以下是几种常见使用场景: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并 ...
- css + html 小知识总结
Html+CSS基础之Html 注:本文摘自慕课网http://www.imooc.com HTML+CSS基础课程: 1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的 ...
- Android Loader详解
装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数 ...
- Android dex分包方案
当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时 ...
- Android开发把项目打包成apk
做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...
- Statspack安装配置及使用
1.1 概念 statspack,用于收集系统信息,诊断数据库故障,也方便第三方技术支持进行远程阅读和建议.它连续收集数据信息,能够提供趋势分析,同时也需要单独分配一个表空间来存储这些统计数据.即在安 ...
- javascript的语句和函数
1.for-in语句:是一种精准的迭代语句,可以用来枚举对象的属性. 2.label语句:在代码中添加标签,以便将来使用,由break和continue语句调用. 3.with语句:将代码的作用域设置 ...
- sql中charindex
假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.我将告诉你这两个函数是如何运转的,解 ...
- LinuxShell脚本攻略--第二章 命令之乐
用 cat 进行拼接 文件查找与文件列表玩转 xargs 用 tr 进行转换排序临时文件命名与随机数分割文件和数据根据扩展名切分文件名mv 批量重命名文件交互输入自动化 cat: echo 'Text ...
- 【bzoj3625】【xsy1729】小朋友和二叉树
[bzoj3625]小朋友与二叉树 题意 我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树. 考虑一个含有n个互异正整数的序列c[1],c[2],...,c[n].如果一棵带点权的有根二叉树满足其所有 ...