题意:

给定 n×mn\times mn×m 的矩阵,求相同的数的曼哈顿距离和。

思路:

曼哈顿距离:disi→j=∣xj−xi∣+∣yj−yi∣dis_{i\to j}=|x_j - x_i| + |y_j - y_i|disi→j​=∣xj​−xi​∣+∣yj​−yi​∣ 可以发现 xxx 和 yyy 可以分开计算,我们先把多个 xxx 和 yyy 升序排列,对于第 iii 个 xxx 或 yyy,它需要被加 i−1i-1i−1 次被减 n−in-in−i 次 故就很好写代码了。

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,k;
vector<ll>vx[100100];
vector<ll>vy[100100];
int main(){
cin>>n>>m;
ll ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ll x;
cin>>x;
vx[x].push_back(i);//把值为一样的点归为一个容器中
vy[x].push_back(j);
}
}
for(int i=1;i<=100001;i++){//每一类横纵坐标都升序排列
sort(vx[i].begin(),vx[i].end());
sort(vy[i].begin(),vy[i].end());
}
for(int i=1;i<=100001;i++){
for(int j=0;j<vx[i].size();j++){
ans+=j*vx[i][j];//对于第j(含0)个元素他要被加j次
ans-=(vx[i].size()-j-1)*vx[i][j];//对于第j(含0)个元素他 要被减n-j-1次
ans+=j*vy[i][j];
ans-=(vy[i].size()-j-1)*vy[i][j];
}
} cout<<ans<<endl;
return 0;
}

CF1648A题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. DPDK简介和原理

    本文分享自天翼云开发者社区<DPDK简介和原理>,作者:s****n DPDK是一种绕过内核直接在用户态收发包来解决内核性能的瓶颈技术. 什么是中断 了解DPDK之前,首先需要先了解什么是 ...

  2. .NET周刊【1月第3期 2025-01-19】

    国内文章 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入门开始 https://www.cnblogs.com/GreenShade/p/1866 ...

  3. Linux视频播放器安装

    sudo add-apt-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer PPA:  ppa ...

  4. 阿里oos使用

    阿里oss控制台安装 wget http://gosspublic.alicdn.com/ossutil/1.6.17/ossutil64 chmod 755 ossutil64 添加环境变量 cp ...

  5. go实现设计模式(1)——简介

    六大原则 开闭原则(Open Close Principle) 对扩展开放,对修改关闭.对程序进行拓展时,尽量不去修改原有的代码,应该通过扩展实体的行为来实现. 里氏替换原则(Liskov Subst ...

  6. Android 监听短信数据库过滤获取短信内容上传至服务器

    前言 Android 监听短信的方式有两种 1.监听短信数据库,数据库发生改变时回调. 2.监听短信广播 其中第二种方式由于国内各厂家的定制Android 可能导致无响应 目前测试 魅族 无法监听到短 ...

  7. vue - [03] Hello World~

    题记部分 (1)选择一个合适的目录,然后进入终端,执行:vue create account-manager (2)切换目录到account-manager,执行npm run serve启动开发服务 ...

  8. CentOS7搭建CDH5.16.2集群 HA高可用(包含Spark2等组件部署)

    CentOS7搭建CDH5.16.2集群 HA高可用   机器准备:(这里HA是对HDFS和YARN的高可用) 主机名 cpu内存 bigdata-master01 8c32G bigdata-mas ...

  9. 1Panel 专业版评测:全面超越宝塔的运维面板新标杆

    一. UX体验与移动端适配:更直观的跨平台交互 1Panel 专业版在用户体验上实现了对宝塔的全面超越.其界面采用现代化设计语言,以黑金主题为代表的可定制化主题系统支持一键切换,视觉风格更符合技术审美 ...

  10. python sqlmap 检测sql注入点及php网站sql注入防护运维操作实例

    问题描述:使用python sqlmap 检测存在sql注入风险,网站为php语言 操作步骤:1.本地电脑系统是win 7,查看未安装python,需要先安装python,注:win 7安装pytho ...