https://www.luogu.org/problem/show?pid=2657

题目描述

一群青年人排成一队,用手机互相聊天。

每个人的手机有一个信号接收指标,第i个人的接收指标设为v[i]。

如果位置在x[i]的人要和位置在xj的人聊天,那么这两人组成的一对的信号发射强度就是abs(x[i]-x[j])*max(v[i],v[j]).

现在我们想知道,这些人所有对子中的信号发射强度的总和。

输入输出格式

输入格式:

第一行一个整数N,接下来N行,每行两个整数v[i]和x[i]。

输出格式:

所有对的信号发射强度总和。

输入输出样例

输入样例#1:

4
3 1
2 5
2 6
4 3
输出样例#1:

57

说明

对于40%的数据,N<=5,000

对于100%的数据,N<=100,000 1≤x[i]≤20,000

[color=red]注意:可能有两人在同一个位置

答案在int64或long long范围内[/color]

对于公式 abs(x[i]-x[j])*max(v[i],v[j]).   先给年轻人排队,让V小的在前面

用树状数组维护第i个人的前面有多少人的x比他的小,维护前面比他小的x的人的x的总和

 #include <algorithm>
#include <cstdio> #define LL long long
const int N(+);
LL n,ans;
struct Node {
LL val,pos;
bool operator < (const Node &x)const
{
return val<x.val;
}
}people[N]; inline void read(LL &x)
{
x=; register char ch=getchar();
for(;ch>''||ch<'';) ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-'';
} #define max(a,b) (a>b?a:b) LL maxpos,sum[N],num[N];
#define lowbit(x) (x&((~x)+1))
inline void Update(LL *tr,LL i,LL x)
{
for(; i<=maxpos; i+=lowbit(i)) tr[i]+=x;
}
inline LL Query(LL *tr,LL i)
{
LL ret=;
for(; i; i-=lowbit(i)) ret+=tr[i];
return ret;
} int AC()
{
read(n);
for(int i=; i<=n; ++i)
{
read(people[i].val);
read(people[i].pos);
maxpos=max(maxpos,people[i].pos);
}
std::sort(people+,people+n+);
for(int i=; i<=n; ++i)
{
LL pos=people[i].pos,val=people[i].val;
LL numl=Query(num,pos-);
LL suml=Query(sum,pos-);
LL numr=Query(num,maxpos)-Query(num,pos);
LL sumr=Query(sum,maxpos)-Query(sum,pos);
ans+=val*(pos*numl-suml+sumr-pos*numr);
Update(num,pos,); Update(sum,pos,pos);
}
printf("%lld\n",ans);
return ;
} int Hope=AC();
int main(){;}

洛谷——P2657 低头一族的更多相关文章

  1. 洛谷 P2657 (数位DP)

    ### 洛谷 P2657 题目链接 ### 题目大意:给你一个数的范围 [A,B] ,问你这段区间内,有几个数满足如下条件: 1.两个相邻数位上的数的差值至少为 2 . 2.不包含前导零. 很简单的数 ...

  2. [luogu]P2657低头一族[树状数组]

    [luogu]P2657 低头一族 题目描述 一群青年人排成一队,用手机互相聊天. 每个人的手机有一个信号接收指标,第i个人的接收指标设为v[i]. 如果位置在x[i]的人要和位置在xj的人聊天,那么 ...

  3. 洛谷P2657 [SCOI2009]windy数 [数位DP,记忆化搜索]

    题目传送门 windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个win ...

  4. 洛谷 P2657 [SCOI2009]windy数 解题报告

    P2657 [SCOI2009]windy数 题目描述 \(\tt{windy}\)定义了一种\(\tt{windy}\)数.不含前导零且相邻两个数字之差至少为\(2\)的正整数被称为\(\tt{wi ...

  5. 洛谷 - P2657 - windy数 - 数位dp

    https://www.luogu.org/problemnew/show/P2657 不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. 这道题是个显然到不能再显然的数位dp了. 来个 ...

  6. 洛谷——P2657 [SCOI2009]windy数

    P2657 [SCOI2009]windy数 题目大意: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和 ...

  7. C++ 洛谷 P2657 [SCOI2009]windy数 题解

    P2657 [SCOI2009]windy数 同步数位DP 这题还是很简单的啦(差点没做出来 个位打表大佬请离开(包括记搜),我这里讲的是DP!!! 首先Cal(b+1)-Cal(a),大家都懂吧(算 ...

  8. 洛谷P2657 [SCOI2009]windy数 题解 数位DP

    题目链接:https://www.luogu.com.cn/problem/P2657 题目大意:找区间 \([A,B]\) 范围内 不含前导零 且 相邻两个数字之差至少为2 的正整数的个数. 题目分 ...

  9. 洛谷P2657 windy数 [SCOI2009] 数位dp

    正解:数位dp 解题报告: 传送门! 这题一看就是个数位dp鸭,"不含前导零且相邻两个数字之差至少为2"这种的 然后就直接套板子鸭(板子戳总结,懒得放链接辣QAQ 然后就是套路 然 ...

随机推荐

  1. 在IIS6,7中部署ASP.NET网站

    查看web.config文件 ASP.NET网站与一般的桌面程序不同,不是拷贝过来就能运行的(数据库连接除外). 要想运行它,通常需要一些配置过程.但是,我们到底需要配置什么呢?答案是:查看web.c ...

  2. 2016.04.25,英语,《Vocabulary Builder》Unit 18

    capit, from the Latin word for 'head', caput ['keɪpət] n.头,首 , turns up in some pretty important pla ...

  3. Android.mk中添加宏定义【转】

    本文转载自:http://blog.csdn.net/huangyabin001/article/details/38302021 在Boardconfig.mk 中添加一个 IS_FLAG := t ...

  4. hdoj--2015--偶数求和(水题)

    偶数求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. LINUX/UNIX找回删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹.管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志.有时可以通过lsof来恢复这些 ...

  6. javascript必须知道的知识要点(一)

    该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 语句 注释 输出 字面量 变量 数据类型 typeof ...

  7. python的模块导入

    单个文件导入:导入的模块可以是一个py文件(放置在当前文件的同级目录.默认路径等) 导入:import 模块名 使用:模块名.函数名 导入:from 模块名 import * 使用:函数名 ----- ...

  8. C - Pocket Book(set)

    Problem description One day little Vasya found mom's pocket book. The book had n names of her friend ...

  9. unity3d 让物体移动到点击位置

    using UnityEngine; using System.Collections; public class test : MonoBehaviour { //在场景中鼠标点击地面后,角色可以移 ...

  10. 使用纯 CSS 实现 Google Photos 照片列表布局

    文章太长,因为介绍了如何一步一步进化到最后接近完美的效果的,不想读的同学可以直接跳到最后一个大标题之后看代码.demo及原理就好,或者也可以直接看下面这个链接的源代码. 不过还是建议顺序读下去,因为后 ...