这题说的是

给出N,a[1]... a[N],还有M,b[1]... b[M]
long long ans = 0;
for(int i = 1; i <= N; i ++)
    for(int j = 1; j <= M; j ++)
        ans += abs(a[i] - b[j]) * (i - j); NM【1,50000】 快熟计算出ans 3 秒 当画出这个乘法表后救就会发现 将b[i] 合并,然后合并完同类项就可以做了 效率 mlogn 使用stl的二分还不行卡常数太不合理了

#include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
const int max_n =;
struct point{
int v,num;
point(ll a=, ll b=){
v=a; num=b;
}
bool operator <(const point A)const {
return v<A.v||(v==A.v&&num<A.num);
}
}P[max_n];
int n,m;
int B[max_n],A[max_n],K[max_n];
ll perAsum[max_n],perAnum[max_n],perAper[max_n];
int binser(int n, int v){
int L=, R =n;
while(L<R){
int mid = (L+R)/;
if(K[mid]<=v) L=mid+;
else R=mid;
}
return L;
}
int main()
{
ll two=,one =;
int cas=;
/*freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
*/while(scanf("%d%d",&n,&m)==){
int V;
ll num=one*(n-)*n/two;
for(int i=; i<n; ++i){
scanf("%d",&V);
A[i]=V;
P[i]=point(V,i);
}
for(int i=; i<m; ++i)
scanf("%d",&B[i]);
ll colu=,per=;
for(int i =; i<n; i++){
colu=colu+one*A[i]*i;
per=per+A[i];
}
ll ans=;
for(int i=; i<m; ++i){
ans = ans+ colu;
colu= colu - per;
ans = ans - one*B[i]*num;
num = num - n;
}
sort(P,P+n);
perAnum[]=P[].num;
perAsum[]=one*P[].v*P[].num;
perAper[]=P[].v;
K[]=P[].v;
for(int i=; i<n; ++i){
perAnum[i] = perAnum[i-]+P[i].num;
perAsum[i] = perAsum[i-]+one*P[i].num*P[i].v;
perAper[i] = perAper[i-]+P[i].v;
K[i]=P[i].v;
}
for(int i=; i<m; ++i){
int loc = binser(n,B[i]);
if(loc<=)continue;
loc-=;
ll perA = perAsum[loc]-perAper[loc]*i;
ll perB = B[i]*(perAnum[loc]-one*(loc+)*i);
ans = ans - ( perA-perB )*two;
}
printf("%I64d\n",ans);
}
return ;
}

acdream1174 合并同类项的更多相关文章

  1. GridView如何合并同类项

    /// <summary>     /// 合并GridView中某列相同信息的行(单元格)     /// </summary>     /// <param name ...

  2. excel合并同类项去重求和功能

    参考:百度经验 主要利用函数为:sumif(range,criteria,[sum_range]) Range:条件区域,用于条件判断的单元格区域. Criteria:求和条件,由数字.逻辑表达式等组 ...

  3. [css]样式合并与模块化

    原文链接:http://www.zhangxinxu.com/wordpress/2010/07/css%E7%9A%84%E6%A0%B7%E5%BC%8F%E5%90%88%E5%B9%B6%E4 ...

  4. CSS的样式合并与模块化

    by zhangxinxu from http://www.zhangxinxu.com 原文地址:http://www.zhangxinxu.com/wordpress/?p=931 一.引言 本文 ...

  5. sql分组合并字段重复项sql for xml path

    -------------------------(情景描述) 在我们处理数据时,可能会碰到这种情景: Id                Name 1                  a,b 2  ...

  6. 主成分分析(PCA)原理总结

    主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一.在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用.一般我们提到降维最容易想到的算法就 ...

  7. C# XML转JSON,不引用第三方JSON.NET类库

    应用场景:需要调用第三方接口(返回XML)数据,然后供自己多个系统使用(涉及跨域,使用JSONP) 代理:调用接口(把XML转换为JSONP解决跨域问题) B/S应用系统:调用代理返回的数据进行UI显 ...

  8. *HDU 1028 母函数

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  9. 十连测Day1 题解

    A. 奥义商店 有一个商店,n个物品,每个物品有一个价格和一种颜色. 有m个操作,操作有两种,一种是修改一个位置的价格,另一种是购买,每次购买指定一个公差d和一个位置k,找到包含这个位置k公差为d的同 ...

随机推荐

  1. CentOS5.5环境下布署LVS+keepalived

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/401253 #!/bin ...

  2. cocos2dx游戏--欢欢英雄传说--为敌人添加移动和攻击动作

    这里主要为敌人添加了一个移动动作和攻击动作.移动动作是很简略的我动他也动的方式.攻击动作是很简单的我打他也打的方式.效果:代码: #ifndef __Progress__ #define __Prog ...

  3. iOS - 布局重绘机制相关方法的研究

    iOS View布局重绘机制相关方法 布局 - (void)layoutSubviews - (void)layoutIfNeeded- (void)setNeedsLayout —————————— ...

  4. c++11实现异步定时器

    c++11提供了丰富的时间和线程操作函数,比如 std::this_thread::sleep, std::chrono::seconds等.可以利用这些来很方便的实现一个定时器.     定时器要求 ...

  5. poj_1988 并查集

    题目大意 开始有N堆砖块,编号为1,2....N,每堆都只有一个.之后可以进行两种操作: (1)M X Y 将编号为X的砖块所在的那堆砖拿起来放到编号为Y的砖块所在的堆上: (2)C X 查询编号为X ...

  6. php array key 的存储规则

    刚刚写程序遇到php数组取值的问题,发现字符串和数字取出来的是一样的. key 可以是 integer 或者string.value 可以是任意类型. 此外 key 会有如下的强制转换: 包含有合法整 ...

  7. java反序列化漏洞的检测

    1.首先下载常用的工具ysoserial 这边提供下载地址:https://jitpack.io/com/github/frohoff/ysoserial/master-v0.0.5-gb617b7b ...

  8. 【BZOJ1269/1507】[AHOI2006]文本编辑器editor Splay

    [BZOJ1269][AHOI2006]文本编辑器editor Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器.你能帮助他吗?为了明确任务目 ...

  9. ThinkPHP流程控制!

    IF判断: 在thinkphp 中不能使用 <> 这样的尖括号: <if condition='表达式'> <elseif condition='表达式'/> &l ...

  10. Asp.net底层机制

    Asp.net底层就是用户通过输入网址,然后请求IIs服务器的流程,在这个过程中有一个重要的部件就是ISAPI,这是一个底层的win32API,在扩展方面比较困难,多用于接口之间的桥接,.net和II ...