nyoj 1275-导弹发射 //lis
1275-导弹发射
- 内存限制:64MB 时间限制:1000ms 特判: No
- 通过数:22 提交数:116 难度:4
题目描述:
Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物。 雷达位于(0,0)处,它能够检测到两条射线之间的区域(不妨设在第一象限)。 导弹一开始置放在(0,0)处,它可以在雷达能检测到的区域内先选择一个目标物击破,然后 再继续前进,选择另一个目标物击破。注意,导弹不能沿着这两条射线前进,当然也不能停在原 地。 可以假设,导弹一旦发射,其能量无比大,前进的路径无限长。 已知雷达能够检测到区域,其射线 1:ax-by=0 和射线 2:cx-dy=0。Alpha 机构的总指挥希望 在发现目标群的第一时刻,计算出一条可以击破最多目标物的路径。
输入描述:
第一行: T 表示以下有 T 组测试数据(1≤T ≤8) 对每组测试数据: 第 1 行: n 表示目标物的个数 第 2 行: a b c d 代表两条射线的斜率分别是 a/b 和 c/d。 接下来有 n 行,每行 2 个正整数 xi yi 即第 i 个目标物的坐标。 【约束条件】(1) n<=10^5 0<=a, b, c, d<=10^5 a 和 b 不会同时为 0,c 和 d 不会同时为 0; (2) 0<= xi , yi <=10^6 i=1,…..,n
输出描述:
每组测试数据,输出占一行,即导弹能击破的最多目标数。
样例输入:
1 15 1 3 2 1 3 1 6 2 4 2 2 5 4 5 6 6 3 4 1 6 2 1 7 4 9 3 5 3 1 3 15 5 12 4
样例输出:
4
题目意思比较。。。不容易懂。。
前进,就是把两个射线看做x轴与y轴,每次必须x也增大y也增大。
那么就是一个lis
对于不在范围里面的点,直接忽略。
二分插入,找到第一个>=key的位置,然后插入。这里只要比node.y,因为x升序。
这个题还是比较绕思维的。。。口怕
#include<bits/stdc++.h>
using namespace std;
const int max_n=1e5+5;
int n;
struct no{double x,y;
}a[max_n];
bool operator<(const no &a,const no &b){if(a.x==b.x)return a.y<b.y;return a.x<b.x;
}
bool cmp(no a,no b){if(a.x<=b.x&&a.y<b.y) return 1;return 0;
}
double a1,b1,c1,d1;
no f[max_n];
//可以手写
/*int binary(int low,int high,int num){//最后一个小于的元素 return 第一个>=key的元素int mid;int re=0;while(low<=high){mid=(low+high)/2;if(a[num].y>f[mid].y) re=mid,low=mid+1;//y肯定越小越好else high=mid-1;}return re+1;
}*/
int main(){int T;scanf("%d",&T);while(T--){scanf("%d",&n);scanf("%lf%lf%lf%lf",&a1,&b1,&c1,&d1);int p=0;for(int i=1;i<=n;i++) {double x,y;scanf("%lf%lf",&x,&y);if(y*d1<x*c1&&x*a1<y*b1){a[++p].x=(x-y*d1/c1)*c1/sqrt(c1*c1+d1*d1); //坐标转换a[p].y=(y-x*a1/b1)*b1/sqrt(a1*a1+b1*b1);}}sort(a+1,a+1+p);int pp=0;f[++pp]=a[1];for(int i=2;i<=p;i++){if(a[i].y>f[pp].y&&a[i].x>f[pp].x) f[++pp]=a[i];//这里不能有等于else{int idx=lower_bound(f+1,f+1+pp,a[i],cmp)-f;f[idx]=a[i];}}printf("%d\n",pp);}return 0;
}
还看到一种有树状数组求lis的。有意思
https://blog.csdn.net/lxt_Lucia/article/details/81206439
按照值的大小进行遍历,每次查询并更新最大值。
树状数组里保存的是以i结束的lis
nyoj 1275-导弹发射 //lis相关推荐
- nyoj 1275 导弹发射(河南省2016年省赛)
导弹发射 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径,击破路径上所有的目标物. ...
- 河南省赛 导弹发射 lis
导弹发射 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物 ...
- NYOJ_1275 导弹发射 【LIS】
导弹发射 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物 ...
- 第九届河南省ACM省赛 D 导弹发射
D 导弹发射 Description Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物. 雷达位于(0,0)处,它能够检测到两条射线之间 ...
- UVa 10051 Tower of Cubes(类似LIS)
题意: 一些重量递增而且各个面都有颜色的立方体,要将这些立方体堆成一个塔,要求两个接触面同色,而且下面的立方体更重.求塔的最大高度. 思路: 用求LIS的思想,无非是多了几个状态.dp[i][j]表示 ...
- 1045 Favorite Color Stripe(LIS解法)
解题思路 本题属于Longest Increasing Sequence最长不下降子序列,但是要注意,LIS当中不会有无效的元素,而本题是有的,所以先要把无效元素过滤掉,才能转化成为LIS问题. 这里 ...
- LIS ZOJ - 4028
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4028 memset超时 这题竟然是一个差分约束 好吧呢 对于每一个a[i] ...
- 【hdu】4521 小明序列【LIS变种】【间隔至少为d】
题目链接:https://vjudge.net/contest/228455#problem/B 转载于:https://blog.csdn.net/a709743744/article/detail ...
- HDU 1257 - 最少拦截系统 ( LIS / 贪心 )
题目 现在有一种拦截系统,第一发拦截可以是任意高度,但是之后的拦截高度不能比上次高.为了拦截下所有的炮弹,最少需要准备几套拦截系统? 思路 可能是语文没学好吧,一开始被题意卡了一下.(而且题目连数据范 ...
最新文章
- 热点:3个故事概览突飞猛进的肠道病毒组研究
- 【数据中台】关于数据中台系统,需要了解哪些技术?
- AI基础:一文看懂BERT
- 详细透彻的分析DM9000网卡驱动程序(3)
- win7 能下node什么版本_微软从未公开的win10版本,3GB+极度精简,老爷机有救了
- 说干就干的p2psearcher2013
- 掌握鸿蒙轻内核静态内存的使用,从源码分析开始
- PHP学习笔记--015 PHP 随笔
- 【Uva 1633】Dyslexic Gollum
- 模拟退火算法(simulated annealing algorithm)求极值
- Pytorch - Tips
- Dorado7 notify非alert 输入框prompt confirm layer dialoger,layer.msg,toast效果,几秒关闭layer.load layer.open
- UnityShader学习笔记:Caustic水纹焦散与鱼群制作水族馆
- php.ini afm,nanoscope analysis(AFM数据处理软件) v1.5 官方安装免费版(附安装教程)
- [从头学数学] 第189节 常用逻辑用语
- 《C语言及程序设计初步》网络课程主页
- [RK3399][Android7.1] 调试笔记 --- RTC读取时间失败
- 基于HANA数据库的BW4HANA
- 20k+招聘要求(截图自boss直聘)
- 华为政企云副总裁 年薪_5年经历3家公司跳槽到华为,年薪从17万到75万,网友说一般...
热门文章
- html根据地点名称查坐标,根据地址查询经纬度Js
- 一个 R 包带你挖掘宏基因组公共数据库
- 设位于第一象限的曲线y=f(x)上的任一点P(x,y)的切线在x轴上的截距等于该点发现在y轴上截距的相反数,且曲线经过(1,0),求该曲线
- 【css】css动画实现的3种方式
- 【HTML5】基础教程
- 疫情地图网页版代码实例
- 微信小程序实现图片文字识别提取
- 1.1.3 操作系统的发展与分类(手工操作阶段、批处理阶段、分时操作系统、实时操作系统、其它操作系统)
- 广工数据结构课设——校园导游咨询(C语言)
- lisp画弯箭头_在cad中直接画箭头