51nod 1107 斜率小于零连线数量 特调逆序数
逆序数的神题。。。。
居然是逆序数
居然用逆序数过的
提示。。。按照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 斜率小于零连线数量 特调逆序数的更多相关文章
- 51Nod - 1107 斜率小于0的连线数量
二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...
- 51NOD——N 1107 斜率小于0的连线数量
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...
- 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...
- 51nod 1376 最长递增子序列的数量(线段树)
51nod 1376 最长递增子序列的数量 数组A包含N个整数(可能包含相同的值).设S为A的子序列且S中的元素是递增的,则S为A的递增子序列.如果S的长度是所有递增子序列中最长的,则称S为A的最长递 ...
- 51nod 1376 最长上升子序列的数量 | DP | vector怒刷存在感!
51nod 1376 最长上升子序列的数量 题解 我们设lis[i]为以位置i结尾的最长上升子序列长度,dp[i]为以位置i结尾的最长上升子序列数量. 显然,dp[i]要从前面的一些位置(设为位置j) ...
- 字节跳动笔试题:1. 小于N的质数数量;2. 逆时针二维数组;3. 判断a+b>c
1. 小于N的质数数量 import java.util.Scanner; /** * 计算小于N的质数数量 * @author Turing * */ public class Main4 { pu ...
- 51nod 1019 逆序数(逆序数+离散化)
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 如2 4 3 1中,2 1,4 3,4 1,3 1是 ...
- 51Nod P1100 斜率最大
传送门: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1100 由于2 <= N <= 10000, 所以 ...
- 51Nod 1376 最长递增子序列的数量 (DP+BIT)
题意:略. 析:dp[i] 表示以第 i 个数结尾的LIS的长度和数量,状态方程很好转移,先说长度 dp[i] = max { dp[j] + 1 | a[i] > a[j] && ...
随机推荐
- Mavlink消息包解析
Byte Index 字节索引 Content 内容 Value 值 Explanation 说明 0 包起始标志 v1.0: 0xFE (v0.9: 0x55) 指示新消息帧的开始.在v1.0版本中 ...
- bootstrapTable的数据后端分页排序
数据后端分页排序,其实就是sql语句中oeder by做一些限制. 之前在写sql语句中的order by是写死,既然要写活,就要传参数到后台. 之前讲到bootstrapTable的queryPar ...
- vue+element-ui实现cookie登录
//效果 //login.vue <template> <div> <el-form :model="ruleForm" :rules="r ...
- 【干货】JavaScript DOM编程艺术学习笔记10-12【完】
十.用JavaScript实现动画效果 鼠标放到链接上,每次只显示图片的一小部分,加快加载速度. js: function prepareSlideshow(){ //对象检测 if(!documen ...
- nodejs请求中获取参数值的方法
req.params.xxxxx 从path中的变量 req.query.xxxxx 从get中的?xxxx=中 req.body.xxxxx 从post中的变量
- C#之linq
本文根据30分钟LINQ教程学习作的笔记. 1.Guid.Empty Guid 结构: 表示全局唯一标识符 (GUID).Empty字段:Guid 结构的只读实例,其值均为零.用来设置初始值. G ...
- 聊聊javascript的事件
javascript事件1.点击事件 onclick obtn.click=function(){};2.移入/移出事件 onmouseover/onmouseout 注意:在父级中移入移出,进 ...
- 如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量
本文使用的例子源代码在我的github上. 在我的公众号文章在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务介绍了如何通过Cloud Connector ...
- IOS - (id)initWithStyle... 方法的使用
// 该方法只有在通过代码创建控件的时候才会调用, 如果控件是通过xib或者storyboard创建出来的不会调用该方法- (id)initWithStyle:(UITableViewCellStyl ...
- VC-基础-WebBrowser控件中弹出新网页窗口
用webbrowser控件浏览网页时,常弹出新的网页窗口,若不做任何控制的话,会在默认浏览器(一般是IE)中打开,这样就在新的窗口打开了,原程序就很难控制了,且存在webbrowser控件和IE的se ...