逆序数的神题。。。。

居然是逆序数

居然用逆序数过的

提示。。。按照X从小到大排列,之后统计Y的逆序数。。。

之后,得到的答案就是传说中的解(斜率小于零)

#include<bits/stdc++.h>
using namespace std; const long long MAXN = ;
pair<long long,long long> arr[MAXN]; bool com(pair<long long,long long>p1,
pair<long long,long long>p2)
{
if(p1.first==p2.first)return p1.second<p2.second;
return p1.first<p2.first;
}
long long tree[MAXN];
long long arr1[MAXN];
void insert(int pos,int key=)
{
while(pos<MAXN)
{
tree[pos]+=key;
pos+=pos&(-pos);
}
}
long long getSum(int pos)
{
long long ret=;
while(pos>)
{
ret+=tree[pos];
pos-=pos&(-pos); }return ret;
}
map<long long ,long long> m1; int main()
{
cin.sync_with_stdio(false);
long long n;cin>>n;
for(int i=;i<n;++i)
{
cin>>arr[i].first>>arr[i].second;
arr1[i]=arr[i].second;
// cout<<m1[arr[i].second]<<endl;
}
sort(arr1,arr1+n);
for(int i=;i<n;++i)if(!m1.count(arr1[i]))m1[arr1[i]]=m1.size()+;
sort(arr,arr+n,com); //long long ret=0; long long ret=(n-)*(n)/;
for(int i=;i<n;++i)
{
// cout<<arr[i].first<<ends<<arr[i].second<<ends;
ret-=getSum(m1[arr[i].second]);//cout<<ret<<endl;
insert(m1[arr[i].second]);
}
cout<<ret<<endl;
return ;
}

我们大家都很绝望,但是有的人比我们更加绝望。

51nod 1107 斜率小于零连线数量 特调逆序数的更多相关文章

  1. 51Nod - 1107 斜率小于0的连线数量

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

  2. 51NOD——N 1107 斜率小于0的连线数量

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...

  3. 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)

    1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题   二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...

  4. 51nod 1376 最长递增子序列的数量(线段树)

    51nod 1376 最长递增子序列的数量 数组A包含N个整数(可能包含相同的值).设S为A的子序列且S中的元素是递增的,则S为A的递增子序列.如果S的长度是所有递增子序列中最长的,则称S为A的最长递 ...

  5. 51nod 1376 最长上升子序列的数量 | DP | vector怒刷存在感!

    51nod 1376 最长上升子序列的数量 题解 我们设lis[i]为以位置i结尾的最长上升子序列长度,dp[i]为以位置i结尾的最长上升子序列数量. 显然,dp[i]要从前面的一些位置(设为位置j) ...

  6. 字节跳动笔试题:1. 小于N的质数数量;2. 逆时针二维数组;3. 判断a+b>c

    1. 小于N的质数数量 import java.util.Scanner; /** * 计算小于N的质数数量 * @author Turing * */ public class Main4 { pu ...

  7. 51nod 1019 逆序数(逆序数+离散化)

    在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.   如2 4 3 1中,2 1,4 3,4 1,3 1是 ...

  8. 51Nod P1100 斜率最大

    传送门: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1100 由于2 <= N <= 10000, 所以 ...

  9. 51Nod 1376 最长递增子序列的数量 (DP+BIT)

    题意:略. 析:dp[i] 表示以第 i 个数结尾的LIS的长度和数量,状态方程很好转移,先说长度 dp[i] = max { dp[j] + 1 | a[i] > a[j] && ...

随机推荐

  1. postgresql安装,java简单使用postgresql

    一 整合 由于本人的学过的技术太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的github项目地址 https://github.com/247292980/spri ...

  2. AnyCAD在医疗中的应用

    void addPoint(List<float> buffer, Vector3 pt) { buffer.Add((float)pt.X); buffer.Add((float)pt. ...

  3. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第九天(非原创)

    文章大纲 一.课程介绍二.今日功能介绍三.项目源码与资料下载四.参考文章 一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用.(2)第二天:框架的整合 ...

  4. 牛客NOIP提高组(三)题解

    心路历程 预计得分:$30 + 0 + 0 = 30$ 实际得分:$0+0+0= 0$ T1算概率的时候没模爆long long了... A 我敢打赌这不是noip难度... 考虑算一个位置的概率,若 ...

  5. li浮动 第二行第一个位置空白

    li浮动 第二行第一个位置空白:解决办法 li加上 vertical-align:bottom;overflow:hidden; 一行字多了 省略号代替: text-overflow: ellipsi ...

  6. ORACLE 数据库的级联查询 一句sql搞定(部门多级)

    在ORACLE 数据库中有一种方法可以实现级联查询   select  *                //要查询的字段 from table              //具有子接点ID与父接点I ...

  7. SqlServer Alwayson 搭建排错记录(一)

    这几天搭建alwayson,碰到一堆问题,解决起来花了不少时间,特此记下几个有代表性的,以免以后再碰到做重复功. 一.创建可用性组 使用SSMS的创建可用性组向导,添加了一个主副本node1,一个辅助 ...

  8. 实战:ADFS3.0单点登录系列-集成Exchange

    本文将介绍如何将Exchange与ADFS集成,从而实现对于Exchange的SSO. 目录: 实战:ADFS3.0单点登录系列-总览 实战:ADFS3.0单点登录系列-前置准备 实战:ADFS3.0 ...

  9. linux打开进程数测试

    查看linux默认打开最大打开进程数 具体参考:https://www.jb51.net/article/143667.htm #include <unistd.h> #include & ...

  10. SQL Server Profiler查询跟踪的简单使用

    1.打开SQL Server Management Studio,选择工具->SQL Server Profiler,或者直接从路径:开始/程序/Microsoft SQL Server 200 ...