卿学姐与城堡的墙

Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
Submit Status

卿学姐终于来到了魔王的城堡,城堡修建的十分壮观。

即使心中放不下公主,卿学姐还是忍不住驻足观赏这宏伟的建筑。

卿学姐注意到城堡的墙上有若干直线状的花纹。

可以将墙看做一个平面,卿学姐想知道有多少种方式任取两个直线,使得这两个直线的交点的横坐标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
-1 3
2 2
1 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 - 卿学姐与城堡的墙(树状数组求逆序数)的更多相关文章

  1. cdoj1341卿学姐与城堡的墙

    地址:http://acm.uestc.edu.cn/#/problem/show/1341 题目: 卿学姐与城堡的墙 Time Limit: 2000/1000MS (Java/Others)    ...

  2. CDOJ 1292 卿学姐种花 暴力 分块 线段树

    卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...

  3. 哈理工赛 H-小乐乐学数学 /// 筛法得素数表+树状数组

    题目大意: 给定n个数 m个询问 询问l r区间内的孤独数的个数 孤独数的定义为在该区间内与其他所有数互质的数 看注释 #include <bits/stdc++.h> using nam ...

  4. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)

    链接:https://ac.nowcoder.com/acm/contest/392/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K ...

  5. cdoj 1324 卿学姐与公主 线段树裸题

    卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  6. UESTC - 1324 卿学姐与公主

    题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...

  7. cdoj1324卿学姐与公主

    地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memo ...

  8. CDOJ 1324 卿学姐与公主(分块)

    CDOJ 1324 卿学姐与公主(分块) 传送门: UESTC Online Judgehttp://acm.uestc.edu.cn/#/problem/show/1324 某日,百无聊赖的卿学姐打 ...

  9. A - 卿学姐与公主(线段树+单点更新+区间极值)

    A - 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

随机推荐

  1. Python黑科技神奇去除马赛克

    图片修复程序-可用于水印去除 在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以 ...

  2. [CSP-S模拟测试]:城市游戏(图论+DP)

    题目传送门(内部题109) 输入格式 第一行,两个整数$n,m$. 接下来$m$行,每行三个整数$u,v,l$,描述了一条道路连接的两个路口的编号以及道路的长度. 输出格式 输出一行一个整数,为所求的 ...

  3. jquery+css3实现熊猫tv导航效果

    效果展示 实现原理 请看以下源代码. <div class="ph-nav" data-pdt-block="pheader-n"> <div ...

  4. mysql 查询每个分组的前几名

    按分组排序,并查出每个分组的前3名 单表 SELECT * FROM ( SELECT ZONEID, uid, NAME, fight, IF ( , ) AS rank, ( @zone := z ...

  5. Win10无法修改编辑hosts文件

    Win10无法修改编辑hosts文件 一.总结 一句话总结: 这里我的问题是windows的某次更新中把hosts文件或者上级目录设置成了只读,在文件属性中去掉这个只读就好 后文的操作相当于是给文件添 ...

  6. leetcode-easy-design-384 Shuffle an Array

    mycode class Solution(object): def __init__(self, nums): """ :type nums: List[int] &q ...

  7. 【转】HTML怎样使用a标签以post方式提交

    在HTML中,a标签的提交默认是get方式提交的,如果在请求链接的参数中带有中文就会出现乱码问题,除了在后台程序中转码外,这里介绍两种简单的方法,可以在客户端让a标签以post方式提交. 一:增加一个 ...

  8. PRISM 4 - RegisterViewWithRegion & Custom Export Attributes

    5down votefavorite   I am using Prism 4 with MEF Extensions and the MVVM pattern. During initializat ...

  9. Thymeleaf 页面表达式基础

    转自:http://www.cnblogs.com/vinphy/p/4674247.html#undefined (一)Thymeleaf 是个什么?      简单说, Thymeleaf 是一个 ...

  10. playbook部署mangodb

    playbook文件 [root@localhost ~]# cat deploy_mongo.yaml --- - hosts: webservers become: yes become_meth ...