比较显然的一个性质是如果存在$a(i)>=a(j) \& \& b(i)>=b(j)$那么j没用。

我们并不需要A,B的具体取值,我们之关心$\frac {A}{B}$。

不妨令B=1,x=A,那么$t=\frac {x}{a} + \frac {1}{b}$。

那么问题转化为:是否存在一个x使i的t最小。

显然是一个上凸包,用单调栈维护即可。

关于单调栈维护凸包可以看这篇博客

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#define int LL
#define pair pair<int,int>
#define MP(a,b) make_pair(a,b)
#define LL long long
using namespace std;
const long double eps=0;
struct node
{
LL a,b,id,is;
#define a(i) A[i].a
#define b(i) A[i].b
#define id(i) A[i].id
#define is(i) A[i].is
long double xl(){return 1.0/a;}
long double jj(){return 1.0/b;}
friend bool operator < (node a,node b)
{return a.a==b.a?a.b<b.b:a.a>b.a;}
}A[500010],B[500010];
bool cmp1(node a,node b){return a.a==b.a?a.b<b.b:a.a<b.a;}
bool cmp2(node a,node b){return a.b==b.b?a.a<b.a:a.b<b.b;}
bool cmp3(node a,node b){return a.a<b.a;}
//long double get(node a,node b){return (long double)(1.0/b.b-1.0/a.b)/(1.0/a.a-1.0/b.a);}
long double get(node a,node b){return (long double)(1.0*(a.b-b.b)*a.a*b.a)/(1.0*(b.a-a.a)*a.b*b.b);}
int n;bool al[510000];
map<pair,bool>mp;
map<LL,int>ca;
int sta[510000],top;
#define ST sta[top]
signed main()
{
// freopen("slay2.in","r",stdin);
// freopen("1.out","w",stdout); cin>>n;
for(int i=1;i<=n;i++)cin>>a(i)>>b(i),id(i)=i,B[i]=A[i],is(i)=1; sort(A+1,A+n+1,cmp1);int maxb=b(n);
for(int i=n-1;i;i--)
{
if(maxb>=b(i))is(i)=0;
maxb=max(maxb,b(i));
} sort(A+1,A+n+1);
for(int i=1;i<=n;i++)
if(is(i))
{
while(top>1&&get(A[i],A[sta[top-1]])-get(A[ST],A[sta[top-1]])>eps)top--;
if(top<=1|| (get(A[i],A[ST])>0) )sta[++top]=i;
}
for(int i=1;i<=top;i++)mp[MP(a(sta[i]),b(sta[i]))]=1;
for(int i=1;i<=n;i++)if(mp[MP(B[i].a,B[i].b)])printf("%lld ",i);
}

HZOJ 导弹袭击的更多相关文章

  1. [CSP-S模拟测试]:导弹袭击(数学+凸包+单调栈)

    题目背景 $Guess$准备向敌军阵地发起进攻了!$Guess$的武器是自动制导导弹.然而在机房是不允许游戏的,所以班长$XZY$对游戏界面进行了降维打击,结果... 题目描述 众所周知,环境因素对导 ...

  2. NOIP 模拟 $18\; \rm 导弹袭击$

    题解 \(by\;zj\varphi\) 一道凸包题 对于每个导弹,它的飞行时间就是 \(tim=\frac{A}{a_i}+\frac{B}{b_i}\) 我们设 \(x=\frac{1}{a_i} ...

  3. HDU-1257 导弹拦截系统 http://acm.hdu.edu.cn/showproblem.php?pid=1257

    Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...

  4. nyoj814_又见拦截导弹_DP

    又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦 ...

  5. AC日记——导弹拦截 洛谷 P1020 (dp+模拟)

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  6. 【codevs1044】导弹拦截问题与Dilworth定理

    题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某 ...

  7. 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹

    一,    最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...

  8. 【动态规划】拦截导弹_dilworth定理_最长递增子序列

    问题 K: [动态规划]拦截导弹 时间限制: 1 Sec  内存限制: 256 MB提交: 39  解决: 10[提交][状态][讨论版] 题目描述 张琪曼:“老师,修罗场是什么?” 墨老师:“修罗是 ...

  9. TYVJ P1020 导弹拦截 Label:水

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

随机推荐

  1. ionic4环境搭建

    1.下载安装node 下载地址:https://nodejs.org/en/ 安装后,win+R输入cmd,回车运行cmd命令窗口,输入下面的命令验证node是否安装成功: 如果出现上图所示,则证明n ...

  2. JAVA面试常见问题之基础篇

    一.  面向对象的特征:继承.封装.(抽象).多态 继承:继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性. 封装:封装是保证软件部件具有优良的模块性的基础 ...

  3. LA4254 Processor

      题意:有n个任务,每个任务有三个参数ri,di和wi,表示必须在时刻[ri,di]之内执行,工作量为wi.处理器执行速度可以变化,当执行速度为s时,工作量为wi.处理器的速度可以变化,当执行速度为 ...

  4. 微信小程序中自定义swiper轮播图面板指示点的样式

    重置样式: .swiper{ width: 100%; height: 240px; margin-bottom: 0.5rem; position:relative; } div.wx-swiper ...

  5. LintCode刷题笔记-- Maximum Product Subarray

    标签: 动态规划 描述: Find the contiguous subarray within an array (containing at least one number) which has ...

  6. el表达式 jsp页面取list的长度

    方法1 ${cimlistForJsp.size()} 方法2,引入 <%@ taglib prefix="fn" uri="http://java.sun.com ...

  7. IO多路复用,协程

    https://www.cnblogs.com/wangjun187197/p/9642429.html Python之路--协程/IO多路复用 I/O复用模型 此模型用到select和poll函数, ...

  8. 2019.10.22 csp-s模拟测试82 反思总结

    重来重来,刚刚就当什么都没发生 今天的题属实有些迷惑,各种意义上…总之都很有难度吧.不满归不满,这套题的确不是什么没有意义的题目. 为了考验自己的学习能力记忆力,决定不写题解,扔个代码完事了 其实是懒 ...

  9. Java 8最快的垃圾收集器是什么?

    OpenJDK 8 有多种 GC(Garbage Collector)算法,如 Parallel GC.CMS 和 G1.哪一个才是最快的呢?如果在 Java 9 中将 Java 8 默认的 GC 从 ...

  10. 洛谷P1029 最大公约数和最小公倍数问题 [2017年6月计划 数论02]

    P1029 最大公约数和最小公倍数问题 题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1 ...