思路:变换一下坐标系新的坐标系就是给定的两条直线,变换之后求 x,y 都严格递增的点的个数的max;

求 x,y 都严格递增的点的个数的max,按照x的从小到大排序,x相同的按照y的从大到小排序然后对y的值进行LIS

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
typedef long long int LL;
const int INF=2e9+1e8;
const int SIZE =1e5+100; int n,a,b,c,d;
struct Point
{
double x,y;
};
Point point[SIZE];
double dp[SIZE];
struct StraightLine
{
double A,B,C;
};// 一条直线方程为: A*x + B*y + C=0
bool is_inside(Point p)
{
if(a*p.x<b*p.y&&d*p.y<c*p.x) return true;
if(a*p.x>b*p.y&&d*p.y>c*p.x) return true;
return false;
}
double dist(Point x,Point y)
{
return sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*((x.y-y.y)));
}
Point GetPoint(StraightLine x,StraightLine y) //得到两直线的交点 前提有一个交点。
{
Point ans;
ans.y=(y.C*x.A-x.C*y.A)/(y.A*x.B-x.A*y.B);
ans.x=(y.C*x.B-x.C*y.B)/(x.A*y.B-y.A*x.B);
return ans;
}
Point change(Point p)
{
Point ans;
StraightLine x,y;
x.A=(double)a,x.B=(double)-b,x.C=0.;
y.A=(double)c,y.B=(double)-d,x.C=(p.y*b-p.x*a);
ans.x=dist(p,GetPoint(x,y));
x.A=(double)c,x.B=(double)-d,x.C=0.;
y.A=(double)a,y.B=(double)-b,x.C=(p.y*d-p.x*c);
ans.y=dist(p,GetPoint(x,y));
return ans;
}
bool cmp(Point x,Point y)
{
if(x.x==y.x)
return x.y>y.y;
else return x.x<y.x;
}
int LIS(vector<double>& v)
{
int counter=-1,len=(int)v.size();
for(int i=0; i<=len+1; i++)
dp[i]=1e20;
for(int i=0; i<len; i++)
{
int k=lower_bound(dp,dp+len,v[i])-dp;
dp[k]=v[i];
counter=max(k,counter);
}
return counter+1;
}
int main()
{
int ncase;
cin>>ncase;
while(ncase--)
{
scanf("%d%d%d%d%d",&n,&a,&b,&c,&d);
int k=0;
while(n--)
{
Point temp;
scanf("%lf%lf",&temp.x,&temp.y);
if(is_inside(temp))
{
point[k++]=change(temp);
}
}
sort(point,point+k,cmp);
vector<double>num;
for(int i=0; i<k; i++)
num.push_back(point[i].y);
cout<<LIS(num)<<endl;
}
return 0;
}

nyoj 1279 (河南省第九届ACM比赛 D 题)的更多相关文章

  1. 每天一套题打卡|河南省第九届ACM/ICPC

    A 表达式求值 表达式求值:可以用递归求解,也可以用栈模拟,考过多次. 类似题目:NYOJ305,NYOJ35 用栈模拟做法: #include <stdio.h> #include &l ...

  2. 河南省第十一届ACM大学生程序设计竞赛

    nyoj-1365-山区修路 内存限制:128MB 时间限制:3000ms 特判: No通过数:4 提交数:4 难度:3 题目描述: SNJ位于HB省西部一片群峰耸立的高大山地,横亘于A江.B水之间, ...

  3. ACM比赛经验

    这篇博客是转别人的,觉得很好,希望能在以后的现场赛中用上:ACM比赛经验 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果, ...

  4. “玲珑杯”ACM比赛 Round #12题解&源码

    我能说我比较傻么!就只能做一道签到题,没办法,我就先写下A题的题解&源码吧,日后补上剩余题的题解&源码吧!                                     A ...

  5. “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】

    A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT ...

  6. 每天一套题打卡|河南省第十一届ACM/ICPC

    A 计划日 题意:已知李明在YYYY年MM月DD日星期W订了学习计划,现在想看看李明N天后的完成情况和个人总结,你能告诉我那天的日期和星期几吗? 模拟日期计算: 计算星期可以用基姆拉尔森公式 //中国 ...

  7. ACM比赛_注意

    ACM比赛_注意: 比赛前: 1.前一天早一点睡觉 2.避免参加激烈的活动,以免比赛时精力不足; 3.少喝水,并提前上厕所; 4.把账号,密码都准备好,放在txt中 5.提前创建多个程序(etc.10 ...

  8. “玲珑杯”ACM比赛 Round #19 B -- Buildings (RMQ + 二分)

    “玲珑杯”ACM比赛 Round #19 Start Time:2017-07-29 14:00:00 End Time:2017-07-29 16:30:00 Refresh Time:2017-0 ...

  9. “玲珑杯”ACM比赛 Round #1

    Start Time:2016-08-20 13:00:00 End Time:2016-08-20 18:00:00 Refresh Time:2017-11-12 19:51:52 Public ...

随机推荐

  1. 【linux】CentOS编译程序报错 修复 ./Modules/_ssl.c:64:25: 致命错误:openssl/rsa.h:没有那个文件或目录

    如果你在编译时遇到这个错误,这可能是下面的原因:你尝试编译的程序使用OpenSSL,但是需要和OpenSSL链接的文件(库和头文件)在你Linux平台上缺少. 所以在CentOS下, 退到根路径,[需 ...

  2. IntelliJ IDEA 10.5.1 引用外部Jar包

    具体步骤: File -> Project Structure (ctrl + shift + alt + s ) -> Module -> Dependencies -> A ...

  3. Hibernate中的session和load延迟载入矛盾问题,怎样解决?

    假设延迟载入出现session close的情况下 方法1.在web.xml中配置spring的openSessionInViewFilter <filter>  <filter-n ...

  4. java性能监控工具jcmd-windows

    jcmd Sends diagnostic command requests to a running Java Virtual Machine (JVM). Synopsis jcmd [-l|-h ...

  5. HTML5、CSS3等新特性:

    HTML5:1/绘画 canvas 元素;2/用于媒介回放的 video 和 audio 元素;3/本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;4/sessionSt ...

  6. VS2012+Win7站点公布具体步骤

    VS2012+Win7站点公布详细步骤 本机环境: 本文分三个部分介绍Web项目公布的常规方法,大神级别能够略过,主要是为了方便一些刚開始学习的人. 第一部分:VS2012把项目公布到文件系统. 第二 ...

  7. PCIE、UART、I2C、SMBUS、SPI、eSPI、USB、PS2、CAN、SDIO等数据传输协议

    M.2 wife一般支持USB.SDIO.PCIE三种传输

  8. yum安装nginx+PHP+Mysql

    #mkdir /var/www/yum_repo 1.nginx安装: 在http://nginx.org/en/linux_packages.html#stable中下载CentOSX对应版本的rp ...

  9. YUV格式

    http://blog.csdn.net/u011270282/article/details/50696616 http://blog.csdn.net/acs713/article/details ...

  10. iOS之简单瀑布流的实现

    iOS之简单瀑布流的实现   前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...