51Nod - 1107 斜率小于0的连线数量
二维平面上N个点之间共有C(n,2)条连线。求这C(n,2)条线中斜率小于0的线的数量。
Input第1行:1个数N,N为点的数量(0 <= N <= 50000)
第2 - N + 1行:N个点的坐标,坐标为整数。(0 <= Xii , Yii <= 10^9)Output输出斜率小于0的连线的数量。(2,3) (2,4)以及(2,3) (3,3)这2种情况不统计在内。Sample Input
- 4
- 2 3
- 3 4
- 1 5
- 4 6
Sample Output
- 2
选x或y,维护另一个的树状数组即可。

- 1 #include<iostream www.qwangxiao.com/k/gzwxkc/>
- 2 #include<cstdio>
- 3 #include<cstring>
- 4 #include<algorithm>
- 5
- 6 using namespace std;
- 7
- 8 const int maxn=60005;
- 9 int g[maxn],n;
- 10
- 11 struct node
- 12 {
- 13 int x,y;
- 14 int y1;
- 15 }c[maxn];
- 16
- 17 void update(int x)
- 18 {
- 19 for(;x<=n;x+=x&(-x))
- 20 g[x]++;
- 21 }
- 22
- 23 int getsum(int x)
- 24 {
- 25 int sum=0;
- 26 for(;x>0;x-=x&(-x))
- 27 sum+=g[x];
- 28 return sum;
- 29 }
- 30
- 31 bool cmpx(node xx,node yy)
- 32 {
- 33 if(xx.x!=yy.x)
- 34 return xx.x<yy.x;
- 35 return xx.y<yy.y;
- 36 }
- 37
- 38 bool cmpy(node xx,node yy)
- 39 {
- 40 if(xx.y!=yy.y)
- 41 return xx.y<yy.y;
- 42 return xx.x<yy.x;
- 43 }
- 44
- 45 int main()
- 46 {
- 47 scanf("%d",&n);
- 48 for(int i=1;i<=n;i++)
- 49 scanf("%d%d",&c[i].x,&c[i].y);
- 50
- 51 sort(c+1,c+n+1,cmpy);
- 52 for(int i=1;i<=n;i++)
- 53 c[i].y1=n-i+1;
- 54 sort(c+1,c+n+1,cmpx);
- 55 memset(g,0,sizeof(g));
- 56 long long ans=0;
- 57 for(int i=1;i<=n;i++)
- 58 {
- 59 ans+=getsum(c[i].y1);
- 60 update(c[i].y1);
- 61 }
- 62 printf("%lld\n",ans);
- 63
- 64
- 65 return 0;
- 66 }

51Nod - 1107 斜率小于0的连线数量的更多相关文章
- 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...
- 51NOD——N 1107 斜率小于0的连线数量
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...
- 51nod 1107 斜率小于零连线数量 特调逆序数
逆序数的神题.... 居然是逆序数 居然用逆序数过的 提示...按照X从小到大排列,之后统计Y的逆序数... 之后,得到的答案就是传说中的解(斜率小于零) #include<bits/stdc+ ...
- KiCad 不可以画线宽小于 0.2mm 的走线?
KiCad 不可以画线宽小于 0.2mm 的走线? 有小伙伴在 QQ 群里反馈,KiCad 设置线宽规则时出现错误. 于是判断 KiCad 不可以画 BGA PCB,很显然我认为这是不可能的事情. 作 ...
- ecshop 秒杀并发时库存会被减到小于0的解决办法
ecshop 秒杀并发时库存会被减到小于0更新库存后,再进行库存检查,如果库存为负数,则执行事务的回滚. begin();//开始一个事物处理开始 $sql = "UPDATE " ...
- C#_delegate和事件 - 如果金额小于0则触发事件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JavaScript语言里判断一个整数,属于哪个范围:大于0;小于0;等于0
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- appium 切换native/ webview,findby,还有页面元素定位一直小于0的问题的解决
之前一直有个bug没有解决. 今天,终于解决了. 疑问过程: app是混合应用,项目做了H5优化之后,以前的用例执行总会失败,体现在原来的一个元素点击无反馈 排查原因:1.项目做了H5优化,2.测试的 ...
- python中大于0的元素全部转化为1,小于0的元素全部转化为0的代码
[code] """ 大于0的元素全部转化为1 """ np_arr = np.array([[1 ,2, 3, 4]]) print(&q ...
随机推荐
- CF11D A Simple Task 状压DP
传送门 \(N \leq 19\)-- 不难想到一个状压:设\(f_{i,j,k}\)表示开头为\(i\).结尾为\(j\).经过的点数二进制下为\(k\)的简单路总数,贡献答案就看\(i,j\)之间 ...
- PowerDesign 16.0 生成的SQL Server2000 数据库脚本时MS_Description不存在的问题解决
根据网上查询到的资料,找到了解决方法,原文出自:http://www.cnblogs.com/24tt/p/5047257.html PowerDesign 16.0 生成的Script语句,Sql2 ...
- cp 命令有坑
cp 是个很常用的命令, 基本语法为 cp -v a b 把文件a 复制为文件b(-v为显示做了什么,这是非常安全的做法,建议新手添加此参数) 参数说明: -a:此选项通常在复制目录时使用, ...
- Python 学习 第八篇:函数2(参数、lamdba和函数属性)
函数的参数是参数暴露给外部的接口,向函数传递参数,可以控制函数的流程,函数可以0个.1个或多个参数:在Python中向函数传参,使用的是赋值方式. 一,传递参数 参数是通过赋值来传递的,传递参数的特点 ...
- Mvc_model实体数据验证
MVC提供了很方便的数据验证,只需要在model里加入相关的正则等,那么就会在前台里生成相关的验证脚本.需要引用两个js文件: jquery.validate.min.js jquery.valida ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...
- windows如何查看电脑开关机记录
如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...
- Redis常用操作-------Hash(哈希表)
1.HDEL key field [field ...] 删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略. 在Redis2.4以下的版本里, HDEL 每次只能删除单个域,如果你需要在一 ...
- B. Diagonal Walking v.2
链接 [https://i.cnblogs.com/EditPosts.aspx?opt=1] 题意 二维平面从原点出发k步,要到达的点(x,y),每个位置可以往8个方位移动,问到达目的地最多可以走多 ...
- [转帖]linux 内存管理——内核的shmall 和shmmax 参数
(转)linux 内存管理——内核的shmall 和shmmax 参数 内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个 ...