XTUOJ1247 Pair-Pair 预处理+暴力
分析:开个1000*1000的数组,预处理矩阵和,然后分类讨论就好
时间复杂度:O(n)
- #include <cstdio>
- #include <iostream>
- #include <ctime>
- #include <vector>
- #include <cmath>
- #include <map>
- #include <queue>
- #include <algorithm>
- #include <cstring>
- using namespace std;
- typedef long long LL;
- const int N=1e5+;
- const int INF=0x3f3f3f3f;
- const int mod=1e9+;
- struct Node{
- int x,y;
- }p[N];
- int a[][];
- int high[],low[],mid[];
- LL ret[];
- int main()
- {
- int n,m;
- while(~scanf("%d%d",&n,&m)){
- memset(a,,sizeof(a));
- memset(ret,,sizeof(ret));
- memset(high,,sizeof(high));
- memset(low,,sizeof(low));
- memset(mid,,sizeof(mid));
- for(int i=;i<=n;++i){
- scanf("%d%d",&p[i].x,&p[i].y);
- ++a[p[i].x][p[i].y];
- if(p[i].y>p[i].x)++high[p[i].x];
- else if(p[i].y==p[i].x)++mid[p[i].x];
- else ++low[p[i].x];
- }
- for(int i=;i<=m;++i){
- low[i]+=low[i-];
- mid[i]+=mid[i-];
- high[i]+=high[i-];
- }
- for(int i=;i<=m;++i)
- for(int j=;j<=m;++j)
- a[i][j]+=a[i-][j]+a[i][j-]-a[i-][j-];
- for(int i=;i<=n;++i){
- if(p[i].y>p[i].x){
- int tmp=,t;
- t=high[m]-high[p[i].y];
- tmp+=t;ret[]+=t;
- t=low[m]-low[p[i].y]+mid[m]-mid[p[i].y];
- tmp+=t;ret[]+=t;
- t=high[p[i].y]-high[p[i].y-];
- tmp+=t;ret[]+=t;
- t=high[p[i].y-]-high[p[i].x];
- tmp+=t;ret[]+=t;
- t=a[p[i].x][m]-a[p[i].x][p[i].y];
- tmp+=t;ret[]+=t;
- ret[]+=1ll*(n-tmp);
- }
- else if(p[i].x==p[i].y){
- int tmp=,t;
- t=high[m]-high[p[i].x];
- tmp+=t;ret[]+=t;
- t=low[p[i].x]+mid[p[i].x];
- tmp+=t;ret[]+=t;
- ret[]+=1ll*(n-tmp);
- }
- else {
- int tmp=,t;
- t=low[p[i].y]+mid[p[i].y];
- tmp+=t;ret[]+=t;
- t=high[m]-high[p[i].y];
- tmp+=t;ret[]+=t;
- ret[]+=1ll*(n-tmp);
- }
- }
- printf("%I64d %I64d %I64d %I64d\n",ret[],ret[],ret[],ret[]);
- }
- return ;
- }
XTUOJ1247 Pair-Pair 预处理+暴力的更多相关文章
- CodeForces 359D Pair of Numbers (暴力)
题意:给定一个正整数数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间的每个元素. 析:暴力每一个可能的区间,从数组的第一个元素开始考虑,向两边延伸,设延伸到的最左边的点为l, 最右边的点为 ...
- 51Nod 1158 全是1的最大子矩阵 —— 预处理 + 暴力枚举 or 单调栈
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1158 1158 全是1的最大子矩阵 基准时间限制:1 秒 空 ...
- bzoj 3752: Hack 预处理+暴力dfs
题目大意: 定义字符串的hash值\(h = \sum_{i=0}^{n-1}p^{n-i-1}s_i\) 现在给定K个长度不超过L的字符串S,对于每个字符串S,求字典序最小长度不超过L的字符串T使得 ...
- C++学习之Pair
C++学习之Pair Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型, ...
- 找最大重复次数的数和重复次数(C++ Pair)
Problem A: 第一集 你好,世界冠军 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 265 Solved: 50[Submit][Statu ...
- STL模板整理 pair
pair pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同.如果一个函数有两个返回值的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就 ...
- C++编程->pair(对组)
pair 是 一种模版类型.每一个pair 能够存储两个值.这两种值无限制,能够是tuple.vector ,string,struct等等. 首先来看一下pair的函数 初始化.复制等相关操作例如以 ...
- STL pair 常见用法详解
<算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...
- C++ pair
C++ pair Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一 ...
随机推荐
- 在C#中实现Python的分片技术
在C#中实现Python的分片技术 前言 之前在学习Python的时候发现Python中的分片技术超好玩的,本人也是正则表达式热爱狂,平时用C#比较多,所以决定把Python中的分片技术在C#中实现, ...
- RMI
Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力.Java作为一种风靡一时的网络开发语言 ...
- 虚函数(virtual)为啥不能是static
静态成员函数,可以不通过对象来调用,即没有隐藏的this指针. virtual函数一定要通过对象来调用,即有隐藏的this指针. static成员没有this指针是关键!static function ...
- Web应用程序简介
1.HTTP通讯协议 根据联机方式与所使用的网络服务不同,会有不同的通信协议.例如,发送信件时会使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),传输文件会 ...
- linux下的共享库(动态库)和静态库
1.什么是库在windows平台和linux平台下都大量存在着库.本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于windows和linux的本质不同,因此二者库的二进制是不 ...
- NDK xxxxx could not be resolved解决方法
Type '*****' could not be resolved Method '******' could not be resolved 问题解决 以下为未尝试方法,如果上面方法解 ...
- wordCount程序中MapReduce工作过程分析
Map处理的是一个纯文本.Mapper处理的数据是由InputFormat分解过的数据集,其中InputFormat的作用是将数据集切割成小数据集InputSplit,每一个InputSplit将由一 ...
- iOS开原项目
http://www.lanrenios.com/ios/project/2013/0729/1433.html http://www.cnblogs.com/xiaobaizhu/archive/2 ...
- Ubuntu 64位系统安装StarUML之最佳实践
preview 相信很多使用Ubuntu的哥们在安装StarUML或者其他软件时都会遇到要求libgcrypt11的依赖.而遗憾的时,这个东西很多人根本找不到. 我将它分享到百度网盘,mark. 一. ...
- Codeforces Round #239 (Div. 2)
做了三个题,先贴一下代码...终于涨分了 A. Line to Cashier 水题 #include <iostream> #include <cstdio> #includ ...