今天Fakehu考的T1。

大致意思就是有n个人每个人有两个速度\(v_1,v_2\),比赛有两个路程\(A,B\),最后时间是\(A/v_1+B/v_2\)。求每个人是否可能成为冠军中的一个。

显然不需要考虑\(A,B\)这两个值,可以钦定\(A=1\)。那么\(t=B/v_2+1/v_1\)。就是一条直线的形式。

然后求一个半平面交就行了。注意这个半平面交是在\(x\geq 0\)部分的。

细节忽略。

#include<bits/stdc++.h>
#define il inline
#define vd void
#define ll long long
#define db long double
il int gi(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
return x*f;
}
std::set<std::pair<int,int> >M;
struct yyb{int x,y,i;db k,b;}s[300010],stk[300010];
il bool cmp_k(const yyb&a,const yyb&b){
if(a.y!=b.y)return a.y<b.y;
else return a.x>b.x;
}
il bool cmp_i(const yyb&a,const yyb&b){return a.i<b.i;}
int main(){
int n=gi();
for(int i=1;i<=n;++i)s[i].x=gi(),s[i].y=gi(),s[i].i=i,s[i].k=1000000000.0/s[i].y,s[i].b=1000000000.0/s[i].x;
std::sort(s+1,s+n+1,cmp_k);
int top=0;
stk[++top]=(yyb){0,0,0,1e18,0};
for(int i=1;i<=n;++i){
if(s[i].y==s[i-1].y)continue;
while(top>1&&stk[top].y!=stk[top-1].y&&(-(s[i].b-stk[top].b)/(s[i].k-stk[top].k)+1e-15<-(stk[top].b-stk[top-1].b)/(stk[top].k-stk[top-1].k)))--top;
stk[++top]=s[i];
}
std::sort(s+1,s+n+1,cmp_i);
for(int i=1;i<=top;++i)M.insert(std::make_pair(stk[i].x,stk[i].y));
for(int i=1;i<=n;++i)if(M.find(std::make_pair(s[i].x,s[i].y))!=M.end())printf("%d ",i);
return 0;
}

CF535E Tavas and Pashmaks的更多相关文章

  1. CF535E Tavas and Pashmaks 单调栈、凸包

    传送门 题意:有一场比赛,$N$个人参加.每个人有两种参数$a,b$,如果存在正实数$A,B$使得$\frac{A}{a_i} + \frac{B}{b_i}$在$i=x$处取得最大值(可以有多个最大 ...

  2. Codeforces Round #299 (Div. 1)C. Tavas and Pashmaks (凸壳)

    C. Tavas and Pashmaks   Tavas is a cheerleader in the new sports competition named "Pashmaks&qu ...

  3. Codeforces 536C Tavas and Pashmaks(凸壳)

    题目链接 Tavas and Pashmaks 题目大意:n个人比赛,游泳和赛跑,游泳距离S,赛跑R.每个人对应两个速度(陆地和水上的),如果存在S,R,使得第i个人胜利,那么输出i 题目要求输出所有 ...

  4. 【Cf #299 C】Tavas and Pashmaks(单调栈,凸性)

    一个经典的二维数点模型,如果某个人 $ x $ 两个速度都比另一个人 $ y $ 大,显然 $y$ 是不可能成为winner的. 但这里只考虑两个人$x$,$y$在两个属性各有千秋的时候,一定存在正整 ...

  5. 【Codeforces Round #299 (Div. 2) E】Tavas and Pashmaks

    [链接] 我是链接,点我呀:) [题意] 游泳+跑步比赛. 先游泳,然后跑步. 最先到终点的人是winner. 但是现在游泳的距离和跑步的距离长度都不确定. S和R. 给你n个人,告诉你每个人游泳的速 ...

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

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

  7. DP的优化总结

    一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\l ...

  8. Codeforces Round #299 Div2 解题报告

    这场比赛并没有打现场,昨天晚上做了ABCD四道题,今天做掉了E题 以前还没有过切完一场比赛的所有题呢~爽~ A. Tavas and Nafas   Today Tavas got his test ...

  9. C. Tavas and Karafs 二分查找+贪心

    C. Tavas and Karafs #include <iostream> #include <cstdio> #include <cstring> #incl ...

随机推荐

  1. [book] iOS 8 Swift Programming Cookbook

    iOS 8 Swift Programming Cookbook 资源地址 http://pan.baidu.com/s/1c0hn1Gc 书籍介绍 源码截图 书籍截图

  2. 局域网不同网段访问设置WINS域名服务系统

    大背景 公司两台路由器,网段不同 路由器:192.168.0.1 路由器:192.168.1.1 路由器2需要访问路由器1的机子,初始是ping不通的. 方案 使用IP设置里WINS设置,即可轻松实现 ...

  3. Android点击事件

    Android点击事件 备注 全局实现View.OnClickListener 或许需要将MainActivity设置为public 注册事件 btn_login.setOnClickListener ...

  4. shell批量远程连接mysql的方法

    一.配置mysql服务器ip列表如下,可自定义: S1     1.1.1.1     3306 user passwd11   dbname_s1S2      2.2.2.2     3306 u ...

  5. CF613D:Kingdom and its Cities(树形DP,虚树)

    Description 一个王国有n座城市,城市之间由n-1条道路相连,形成一个树结构,国王决定将一些城市设为重要城市. 这个国家有的时候会遭受外敌入侵,重要城市由于加强了防护,一定不会被占领.而非重 ...

  6. ElasticSearch 简单的 搜索 聚合 分析

    一. 搜索1.DSL搜索 全部数据没有任何条件 GET /shop/goods/_search { "query": { "match_all": {} } } ...

  7. spring boot集成dubbo

    spring-boot-start-dubbo spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序.使dubbo开发变得如此简单. 如何使用 1 ...

  8. 输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。

    因为是一批考生,所以先创建一个字符数组存放一组准考证号. 此外这个程序涉及到包装类与基本数据类型的互相转换. string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第 ...

  9. jenkins -Djava.awt.headless=true Linux下java.awt.HeadlessException的解决办法

    修改 linux  apache-tomcat-7.0.56/bin \catalina.sh文件 在所有类似以下代码大约有七八处具体自己去看:    "$_RUNJAVA" $J ...

  10. 内存,缓存,cpu,硬盘关系

    RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序.我把它叫耗电存储器 ROM(Read-Only Memory)即只 ...