E - 卿学姐与城堡的墙(树状数组求逆序数)
卿学姐与城堡的墙
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
卿学姐终于来到了魔王的城堡,城堡修建的十分壮观。
即使心中放不下公主,卿学姐还是忍不住驻足观赏这宏伟的建筑。
卿学姐注意到城堡的墙上有若干直线状的花纹。
可以将墙看做一个平面,卿学姐想知道有多少种方式任取两个直线,使得这两个直线的交点的横坐标xx满足:u≤x≤vu≤x≤v。
Input
第一行三个整数N,u,vN,u,v,标明直线有NN条。
接下来有NN行,每行两个整数k,bk,b,表示这条直线是y=kx+by=kx+b
1≤N≤2000001≤N≤200000
0≤|k|≤10000000000≤|k|≤1000000000
0≤|b|≤10000000000≤|b|≤1000000000
0≤|u|≤10000000000≤|u|≤1000000000
0≤|v|≤10000000000≤|v|≤1000000000
输入保证u≤vu≤v,保证没有两条直线是一样的
Output
输出一个整数,代表选择的方法数。
Sample input and output
| Sample Input | Sample Output |
|---|---|
3 -3 1 |
3 |
Hint

上图是样例的解释,交点是A,B,C
其实就是求逆序对数,先分别算出与u的交点和与v的交点,把u从小到大排序,然后依次把与v的交点加入树状数组,因为后加入的直线与u的交点肯定大于先加入直线与u的交点,所以后加入的直线与v的交点只要小于或者等于先加入的直线与v的交点就可以判断出必定相交,也就成了求逆序对数的问题了,还要离散化,因为数据范围都太大了。。。
#pragma GCC diagnostic error "-std=c++11"
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector> using namespace std;
typedef long long LL;
const int N = + ;
struct Point{
LL x, y;
bool operator < (const Point &X) const{
if(x != X.x) return x < X.x;
return y > X.y;
}
}; int c[N << ];
vector<Point> a;
vector<LL> tot; LL Query(int x){
LL ret = ;
while(x){
ret += c[x];
x -= x&(-x);
}
return ret;
} void change(int x){
while(x <= (int)tot.size()){
c[x]++;
x += x&(-x);
}
} int main(){
//std::ios::sync_with_stdio(false);
LL n, u, v, b, k;
cin >> n >> u >> v;
for(int i = ; i < n; i++){
cin >> k >> b ;
a.push_back((Point){k*u+b, k*v+b});
tot.push_back(a[i].x);
tot.push_back(a[i].y);
}
sort(tot.begin(), tot.end()); tot.resize(distance(tot.begin(), unique(tot.begin(), tot.end()))); for(Point &i:a){
i.y = (LL)(lower_bound(tot.begin(), tot.end(), i.y) - tot.begin()) + ;
i.x = (LL)(lower_bound(tot.begin(), tot.end(), i.x) - tot.begin()) + ;
} sort(a.begin(), a.end());
LL ans = ;
for(Point &i:a){
ans += Query((int)tot.size()) - Query(i.y - );
change(i.y);
}
cout << ans << endl;
}
E - 卿学姐与城堡的墙(树状数组求逆序数)的更多相关文章
- cdoj1341卿学姐与城堡的墙
地址:http://acm.uestc.edu.cn/#/problem/show/1341 题目: 卿学姐与城堡的墙 Time Limit: 2000/1000MS (Java/Others) ...
- CDOJ 1292 卿学姐种花 暴力 分块 线段树
卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...
- 哈理工赛 H-小乐乐学数学 /// 筛法得素数表+树状数组
题目大意: 给定n个数 m个询问 询问l r区间内的孤独数的个数 孤独数的定义为在该区间内与其他所有数互质的数 看注释 #include <bits/stdc++.h> using nam ...
- 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
链接:https://ac.nowcoder.com/acm/contest/392/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K ...
- cdoj 1324 卿学姐与公主 线段树裸题
卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit St ...
- UESTC - 1324 卿学姐与公主
题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...
- cdoj1324卿学姐与公主
地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memo ...
- CDOJ 1324 卿学姐与公主(分块)
CDOJ 1324 卿学姐与公主(分块) 传送门: UESTC Online Judgehttp://acm.uestc.edu.cn/#/problem/show/1324 某日,百无聊赖的卿学姐打 ...
- A - 卿学姐与公主(线段树+单点更新+区间极值)
A - 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
随机推荐
- luoguP3353 在你窗外闪耀的星星
P3353 在你窗外闪耀的星星 题目描述 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向 ...
- Python GUI教程(六):使用Qt设计师进行窗口布局
本篇介绍使用qt设计师进行GUI窗口的布局管理,主要包含以下内容: 使用Qt设计师布局我们的窗口部件: 垂直布局: 水平布局: 网格布局: 使用间隔: 使用“伙伴”将label标签与窗口部件进行连接. ...
- Misplaced alignment tab character &
范例: 期望的标题效果:Literature review & Research set-up 在Latex里写的标题:\section{Literature Review & Res ...
- char和vachar的字段长度怎么影响数据库的性能的
1.限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度 ...
- linux监控系统性能命令
Linux系统性能10条命令监控 https://www.cnblogs.com/qmfsun/p/5729442.html 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. ...
- java链接Mysql出现警告:Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by
Java使用mysql-jdbc连接MySQL出现如下警告: Establishing SSL connection without server's identity verification is ...
- idea maven sync Cannot resolve xxx 的解决方案
经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 找到不能找到的包 删掉相关目录 然后重新更新maven就行了 比如 直接去仓库目录 ...
- 三、smarty--变量调节器(修改器)
变量调节器(修改器) 作用: 1. 从PHP中分配个模板的变量 2. 需要模板中对变量在输出前进行处理 3. 处理方式就是使用“函数” 4. 在smarty3中可以直接调用到PHP的函数 5. ...
- numpy小记
import numpy as np # a=np.array([[1,3,2],[4,5,6]]) print(a) a=np.arange(1,13).reshape((3,4))#生成一个3行4 ...
- @RequestMapping注解学习
1.@RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法.可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. 参考地址:https://ww ...