导弹发射

时间限制:1000 ms  |  内存限制:65535 KB
难度: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

#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相关推荐

  1. 第七届河南省赛部分题

    10401: A.物资调度 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 106  Solved: 62 [Submit][Status][Web B ...

  2. 第八届河南省赛D.引水工程(kruthcra+prime)

    D.引水工程 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 118  Solved: 41 [Submit][Status][Web Board] D ...

  3. j-甜甜圈(第十三届icpc河南省赛)

    照常,上题目:J-甜甜圈_河南省第十三届ICPC大学生程序设计竞赛(重现赛) (nowcoder.com) 这种题,就一眼能看出来直接模拟肯定是不行的了 然后比赛的时候三个人就思考了下人生决定跳过 咳 ...

  4. NYOJ 1253 Turing equation (第七届河南省赛)

    Turing equation 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 The fight goes on, whether to store numbers sta ...

  5. 2021CCPC河南省赛赛后总结(终于拿金了呜呜呜)

    第二次参加河南CCPC省赛,终于拿金了,哈呜呜呜呜呜. 整体体验:因为疫情这次又是线上举行,不过这次我觉得我们学校还是挺棒的,相比去年随便办办,这次找了两个学妹当志愿者插气球,比去年正式一些,感觉有了 ...

  6. 22河南省赛 - E. Serval 的俳句(预处理)

    https://codeforces.com/gym/103941 题意 给定长度为 n 的包含小写英文字母的字符串 S,需要找到长度为 17 的满足下面条件的一个子序列: 前 5 个字符相同,中间 ...

  7. 第十一届河南省赛--山区修路

    题目链接 题目描述 SNJ位于HB省西部一片群峰耸立的高大山地,横亘于A江.B水之间,方圆数千平方公里,相传上古的神医在此搭架上山采药而得名.景区山峰均在海拔3000米以上,堪称"华中屋脊& ...

  8. 第十一届河南省赛--H : Attack City and Capture Territory

    题目链接 The Three Kingdoms period was a relatively famous period in the history of China. From the Batt ...

  9. 第十一届河南省赛--A计划日

    题目链接 为什么花那么多时间.精力还是学不好学不通,如何把握各科目的重难点,期中和期末如何梳理本学期各知识点及内部联系--在孩子学习的过程中,我们该如何帮助孩子快速提高成绩呢? 打造名校进阶计划,让孩 ...

最新文章

  1. 引入外部css_css
  2. 多任务版udp聊天器
  3. java for 线程_如何在for循环中使用多线程
  4. Python的os模块常用文件夹的增删改查详解
  5. spark集群访问mysql_spark连接数据源以及在spark集群上跑
  6. OpenCV精进之路(八):图像轮廓和图像分割修复——轮廓查询和多边形包围轮廓
  7. win11虚拟桌面如何使用 Windows11虚拟桌面的使用方法
  8. WinHex(16进制编辑器)
  9. Check It Again: Progressive Visual Question Answeringvia Visual Entailment(SAR)
  10. SAP SM30隐藏部分字段以及自动带出某些值
  11. AL遮天传 DL-深度学习模型的训练技巧
  12. CentOS7配置本地yum源 和yum源服务器
  13. TTL转232芯片应用电路
  14. javascript学习笔记下篇--浏览器对象
  15. 将vscode打造成无敌的IDE(0)开发神器vscode介绍
  16. 康佳android 9tv,康佳易TV史上最大规模系统升级 安卓4.4体验
  17. 广域网优化对虚拟化的重要性
  18. reactnative打包apk报错:failed parsing overlays.
  19. [scrum][CMMI]戏说CMMI与Agile的近亲关系
  20. STM32之光敏电阻传感器模块的使用

热门文章

  1. 【数据异常校验】T检验或T测试(T-test)
  2. 什么是CSTC价值协议
  3. bio-linux分区,bio 与块设备驱动
  4. 新手如何参加信息学竞赛NOIP,怎么入门(常见问题解答)?
  5. hnu 模型机组合部件的实现(一)
  6. 镜子法则--看得人泪流满面!
  7. SP4354 TWINSNOW - Snowflakes
  8. Win平台ZIP版本MySql启动问题
  9. 安卓开发自己写的刻度尺测量,精确到mm.
  10. TCP/IP可能有你不知道的事