河南省赛 导弹发射 lis
导弹发射
- 描述
-
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
-
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct Node {double x,y; }node[100005]; Node ans[10005]; int len; bool cmp(Node a,Node b) {if(a.x==b.x)return a.y<b.y;elsereturn a.x<b.x; } int binary_search(int i) {int left=0,right=len;int mid;while(left<=right){mid=(left+right)/2;if(ans[mid].y<node[i].y) left=mid+1;else right=mid-1;}return left; } int main() {int T,k;scanf("%d",&T);while(T--){k=0;int n;cin>>n;int a,b,c,d;double k1,k2,k3,t;scanf("%d%d%d%d",&a,&b,&c,&d);k1=a*1.0/b;k2=c*1.0/d;if(k1>k2)swap(k1,k2);int x,y;for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);k3=1.0*y/x;if(k3>k1&&k3<k2){node[k].x=x*1.0-y*1.0/k2;node[k].y=y*1.0-k1*x;k++;}}sort(node,node+k,cmp);memset(ans,0,sizeof(ans));len=1;ans[0]=node[0];for(int i=1;i<n;i++){if(node[i].y>ans[len-1].y&&node[i].x>ans[len-1].x){ans[len++]=node[i];}else{int pos=binary_search(i);ans[pos]=node[i];}}printf("%d\n",len);}return 0; }
以两条射线重建坐标系,在坐标系里面跑最长递增子序列
河南省赛 导弹发射 lis相关推荐
- 第七届河南省赛部分题
10401: A.物资调度 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 106 Solved: 62 [Submit][Status][Web B ...
- 第八届河南省赛D.引水工程(kruthcra+prime)
D.引水工程 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 118 Solved: 41 [Submit][Status][Web Board] D ...
- j-甜甜圈(第十三届icpc河南省赛)
照常,上题目:J-甜甜圈_河南省第十三届ICPC大学生程序设计竞赛(重现赛) (nowcoder.com) 这种题,就一眼能看出来直接模拟肯定是不行的了 然后比赛的时候三个人就思考了下人生决定跳过 咳 ...
- NYOJ 1253 Turing equation (第七届河南省赛)
Turing equation 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 The fight goes on, whether to store numbers sta ...
- 2021CCPC河南省赛赛后总结(终于拿金了呜呜呜)
第二次参加河南CCPC省赛,终于拿金了,哈呜呜呜呜呜. 整体体验:因为疫情这次又是线上举行,不过这次我觉得我们学校还是挺棒的,相比去年随便办办,这次找了两个学妹当志愿者插气球,比去年正式一些,感觉有了 ...
- 22河南省赛 - E. Serval 的俳句(预处理)
https://codeforces.com/gym/103941 题意 给定长度为 n 的包含小写英文字母的字符串 S,需要找到长度为 17 的满足下面条件的一个子序列: 前 5 个字符相同,中间 ...
- 第十一届河南省赛--山区修路
题目链接 题目描述 SNJ位于HB省西部一片群峰耸立的高大山地,横亘于A江.B水之间,方圆数千平方公里,相传上古的神医在此搭架上山采药而得名.景区山峰均在海拔3000米以上,堪称"华中屋脊& ...
- 第十一届河南省赛--H : Attack City and Capture Territory
题目链接 The Three Kingdoms period was a relatively famous period in the history of China. From the Batt ...
- 第十一届河南省赛--A计划日
题目链接 为什么花那么多时间.精力还是学不好学不通,如何把握各科目的重难点,期中和期末如何梳理本学期各知识点及内部联系--在孩子学习的过程中,我们该如何帮助孩子快速提高成绩呢? 打造名校进阶计划,让孩 ...
最新文章
- 引入外部css_css
- 多任务版udp聊天器
- java for 线程_如何在for循环中使用多线程
- Python的os模块常用文件夹的增删改查详解
- spark集群访问mysql_spark连接数据源以及在spark集群上跑
- OpenCV精进之路(八):图像轮廓和图像分割修复——轮廓查询和多边形包围轮廓
- win11虚拟桌面如何使用 Windows11虚拟桌面的使用方法
- WinHex(16进制编辑器)
- Check It Again: Progressive Visual Question Answeringvia Visual Entailment(SAR)
- SAP SM30隐藏部分字段以及自动带出某些值
- AL遮天传 DL-深度学习模型的训练技巧
- CentOS7配置本地yum源 和yum源服务器
- TTL转232芯片应用电路
- javascript学习笔记下篇--浏览器对象
- 将vscode打造成无敌的IDE(0)开发神器vscode介绍
- 康佳android 9tv,康佳易TV史上最大规模系统升级 安卓4.4体验
- 广域网优化对虚拟化的重要性
- reactnative打包apk报错:failed parsing overlays.
- [scrum][CMMI]戏说CMMI与Agile的近亲关系
- STM32之光敏电阻传感器模块的使用