【CodeForces - 651C 】Watchmen(map)
Watchmen
直接上中文
Descriptions:
钟表匠们的好基友马医生和蛋蛋现在要执行拯救表匠们的任务。在平面内一共有n个表匠,第i个表匠的位置为(xi, yi).
他们需要安排一个任务计划,但是确发现了一些问题很难解决。马医生从第i个表匠到第j个表匠所需要的时间为|xi - xj| + |yi - yj|。然而蛋蛋所需要的时间为
要想成功完成任务,必须保证两人从第i个表匠出发,同时到达第j个表匠。现在请你计算最多有多少组表匠的位置满足条件
Input
第一行只有一个数n( 1 ≤ n ≤ 200 000) )——代表表匠的数量。
接下来n行,每行两个数xi , yi (|xi|, |yi| ≤ 109).
一些表匠可能位置相同。
Output
输出满足条件的位置的组数。
Examples
Input3
1 1
7 5
1 5
Output2
Input6
0 0
0 1
0 2
-1 1
0 1
1 1
Output11
Hint
在第一组样例中,马医生从1号走到2号需要的时间为|1 - 7| + |1 - 5| = 10,而蛋蛋需要的时间为
时间不同,然而从1号走到3号,通过同样的方法计算得到马医生和蛋蛋所用的时间相同,均为4;同理从2号到3号也是这样。因此,一共有2组满足题意的位置。
题目链接:
https://vjudge.net/problem/CodeForces-651C
这题有点水吧,用map直接求前一个数有多少的重复的(x),后一个数有几个重复的(y),整体有几个数重复的(z)。让后(x*(x-1)+y*(y-1)+z*(z-1))/2就OK了,是个公式题吧,不明白的小伙伴动手比划比划就知道。
AC代码
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
map<ll,ll> num1;//前一个数x
map<ll,ll> num2;//后一个数y
map<pair<ll,ll>,ll>same;//整体z
map<ll,ll>::iterator it1;
map<pair<ll,ll>,ll>::iterator it2;
ll sum,n,x,y;
int main()
{
sum=;
cin>>n;
for(int i=; i<n; i++)
{
cin>>x>>y;
//查重,看看有多少重复
num1[x]++;
num2[y]++;
same[make_pair(x,y)]++;
}
//开始计算
for(it1=num1.begin();it1!=num1.end();it1++)
{
ll t=it1->second;
sum+=t*(t-)/;
}
for(it1=num2.begin();it1!=num2.end();it1++)
{
ll t=it1->second;
sum+=t*(t-)/;
}
for(it2=same.begin();it2!=same.end();it2++)
{
ll t=it2->second;
sum-=t*(t-)/;
}
cout<<sum<<endl;
}
【CodeForces - 651C 】Watchmen(map)的更多相关文章
- 【POJ 3071】 Football(DP)
[POJ 3071] Football(DP) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4350 Accepted ...
- 【初识Spring】对象(Bean)实例化及属性注入(xml方式)
title: [初识Spring]对象(Bean)实例化及属性注入(xml方式) date: 2018-08-29 17:35:15 tags: [Java,Web,Spring] --- #初识S ...
- 【UOJ#311】【UNR #2】积劳成疾(动态规划)
[UOJ#311][UNR #2]积劳成疾(动态规划) UOJ Solution 考虑最大值分治解决问题.每次枚举最大值所在的位置,强制不能跨过最大值,左右此时不会影响,可以分开考虑. 那么设\(f[ ...
- 【UOJ#246】套路(动态规划)
[UOJ#246]套路(动态规划) 题面 UOJ 题解 假如答案的选择的区间长度很小,我们可以做一个暴力\(dp\)计算\(s(l,r)\),即\(s(l,r)=min(s(l+1,r),s(l,r- ...
- 【LOJ#6074】子序列(动态规划)
[LOJ#6074]子序列(动态规划) 题面 LOJ 题解 考虑一个暴力\(dp\). 设\(f[i][c]\)表示当前在第\(i\)位,并且以\(c\)结尾的子序列个数. 那么假设当前位为\(a\) ...
- 通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战
前情提要: 通俗地说逻辑回归[Logistic regression]算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklear ...
- 【LOJ#2687】Vim(动态规划)
[LOJ#2687]Vim(动态规划) 题面 LOJ 题解 发现移动的路径一定是每次往后跳到下一个某个字符的位置,然后往回走若干步,删掉路径上的所有\(e\),然后继续执行这个操作. 这里稍微介绍一下 ...
- 【UOJ#76】【UR #6】懒癌(动态规划)
[UOJ#76][UR #6]懒癌(动态规划) 题面 UOJ 题解 神....神仙题. 先考虑如果是完全图怎么做... 因为是完全图,所以是对称的,所以我们只考虑一个有懒癌的人的心路历程. 如果只有一 ...
- 【UOJ#22】【UR #1】外星人(动态规划)
[UOJ#22][UR #1]外星人(动态规划) 题面 UOJ 题解 一道简单题? 不难发现只有按照从大往小排序的顺序选择的才有意义,否则先选择一个小数再去模一个大数是没有意义的. 设\(f[i][j ...
随机推荐
- 【转载】Socket通讯原理以及TCP、IP三次握手机制分析
要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...
- register_shutdown_function函数详解
设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...
- Python基础——数据类型、流程控制、常用函数
Python tutorial :Python网站上的对 Python 语言和系统的基本概念和功能进行的非正式的介绍. 在学习Python之前,我们需要学会在各个平台配置Python的运行环境,下文中 ...
- java涉及父子类的异常
java中的异常涉及到父子类的问题,可以归纳为一句话:子类的构造函数抛出的异常必须包含父类的异常,子类的方法可以选择抛出“范围小于等于”父类的异常或不抛出异常. 1. 为什么构造函数必须抛出包含父类的 ...
- 全志Android SDK编译详解(二)
注意要确定安装了jdk) 第一步: cd lichee; ./build.sh -p sun5i_elite -k 3.0 (apt-get install uboot-mkimage需要安装m ...
- Android图表AChartEngine
很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比较 ...
- Effective C++ 条款42
本节条款我们讨论一下class 关键字和typename关键字的不同以及对于模板函数(template function)的影响. 例如以下代码: template<class T> T ...
- Phoenix put the sql back in NoSql
Overview | Apache Phoenix http://phoenix.apache.org/index.html Apache Phoenix enables OLTP and opera ...
- storage engine option for directoryPerDB
Requested option conflicts with current storage engine option for directoryPerDB; you requested true ...
- PPAPI与Browser间使用AsyncIPC通信
採用AsyncIpc这个项目(https://github.com/hicdre/AsyncIpc).来完毕PPAPI Plugin进程与Browser进程的通信. foruok原创.如需转载请关注f ...