CSU 1974
Description
对于csuxushu来说,能够在CSU(California State University)组织2017年的ACM暑期集训让他感到十分荣幸。 csuxushu是一名充满梦想的程序员,因此他也希望来参加暑期集训的ACM萌新们和他一样怀揣着书写CSU-ACM历史的梦想。 一个偶然的机会,他在机房的某个角落得到了一本来自远古神犇的药水配方秘籍。秘籍上记载了许多AC药水配方,每一种药水都需要用两种原料 <勤奋,聪明> 按一定的比例配置而成。
“只要萌新喝下这些药水,他们的实力将有质的提升!”
——《远古AC药水秘籍》
此刻萌新们正在机房内和题目奋战,耳边的WA声不绝于耳。此情此景,csuxushu下定决心要为萌新们配置这些药水。 但是这两种原料市面上并不出售,因此只能由一些已有药水混合而成。为此他四处搜寻,机房不时放进新的药水和运出药水,并且在机房内的每种药水量都保证足够多。作为全CSU最聪明的程序员,对于每一个神奇药水配方,你能告诉他能否配成吗?
Input
多组数据。
对于每组数据,第一行一个整数N(1 < =N < =105),代表操作数。
接下来N行,每行一个三元组(K, X, Y) ,XX 和 YY 分别代表勤奋和聪明两种原料在药水中的浓度,其中 XX% + YY% = 100% 。
K = 0 :询问是否可以配置神奇药水(X, Y) ;
K = 1 :新增一种原料药水(X, Y) ;
K = −1 :删除所有原料药水(X, Y) ,如果没有这种药水则忽略此操作;
Output
对于每个K = 0 的询问输出一行,Yes或No。
Sample Input
6
1 65.00 35.00
0 93.58 6.42
1 44.64 55.36
1 68.27 31.73
0 54.36 45.64
0 46.04 53.96
Sample Output
No
Yes
Yes
Hint
Source
2017年7月月赛
官方题解:
对于给出的询问(X, Y) ,判断集合中能否找到 (X1, Y1), (X2, Y2) ,并且∃k1, k2 ∈ R+ ∪ 0
容易知道最多有10001种药水。将(X, Y) 视为平面上的向量,能否配置当且仅当(X, Y) 集合中存在或夹在向量(X1, Y1), (X2, Y2) 之间。由于存在约束条件 XX + Y = 100 ,实际上这些点在一条直线上,因此只要判断横坐标的位置关系即可。

使用STL中的set维护插入和删除操作O(logn),并且利用set的有序性找到横坐标的最大和最小值判断即可O(1)。总的复杂度:O(nlogn)
注意判断集合是否为空以及横坐标的边界情况。
只用记录其中一个X就OK。
向量共线定理: c = (x)a + (1-x)b。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set> using namespace std; int main()
{
int n;
while(scanf("%d",&n)!=EOF) {
set<double> s;
set<double> ::iterator p;
for(int i=;i<n;i++) {
double a,b;
int f;
scanf("%d%lf%lf",&f,&a,&b);
if(f==) {
if(s.count(a)==)
s.insert(a);
}
else if(f==-) {
if(s.count(a))
s.erase(a);
}
else if(f==) {
if(s.empty()) {
puts("No");
continue;
}
p = s.begin();
double l = *p;
p = s.end();
p--;
double r = *p;
if(l<=a&&r>=a)
puts("Yes");
else puts("No"); }
}
}
return ;
}
CSU 1974的更多相关文章
- csu 1812: 三角形和矩形 凸包
传送门:csu 1812: 三角形和矩形 思路:首先,求出三角形的在矩形区域的顶点,矩形在三角形区域的顶点.然后求出所有的交点.这些点构成一个凸包,求凸包面积就OK了. /************** ...
- CSU 1503 点到圆弧的距离(2014湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 解题报告:分两种情况就可以了,第一种是那个点跟圆心的连线在那段扇形的圆弧范围内,这 ...
- CSU 1120 病毒(DP)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1120 解题报告:dp,用一个串去更新另一个串,递推方程是: if(b[i] > a ...
- CSU 1116 Kingdoms(枚举最小生成树)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1116 解题报告:一个国家有n个城市,有m条路可以修,修每条路要一定的金币,现在这个国家只 ...
- CSU 1113 Updating a Dictionary(map容器应用)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1113 解题报告:输入两个字符串,第一个是原来的字典,第二个是新字典,字典中的元素的格式为 ...
- CSU 1333 Funny Car Racing (最短路)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1333 解题报告:一个图里面有n个点和m条单向边,注意是单向边,然后每条路开a秒关闭b秒 ...
- CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 解题报告:虽然x和y的范围都是10^8,但是如果a 是大于1000的话,那么a^3 ...
- CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328 解题报告:中文题题意就不说了.还好数据不大,只有1000,枚举回文串的中心位置,然 ...
- 三分 --- CSU 1548: Design road
Design road Problem's Link: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1548 Mean: 目的:从(0,0)到 ...
随机推荐
- esper(4-4)-OverLapping Context
语法 create context context_name initiated [by] initiating_condition terminated [by] terminating_condi ...
- JS 判断节点类型
节点类型的分类 节点类型 说明 值 元素节点 每一个HTML标签都是一个元素节点,如 <div> . <p>.<ul>等 1 属性节点 元素节点(HTML标签)的属 ...
- oracle 备份恢复篇(一)---rman
一,rman介绍 RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件.归档日志和控制文件,用来执行完全或不完全的数据库恢复.与传统 ...
- oracle 基础知识(七)----动态性能视图
一,动态性能视图介绍 动态性能视图属于数据字典,系统管理员用户 SYS 可以访问它们.在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关.虽然这些视图很像普通的数据库表,但它们不允许用户直 ...
- TimesTen启动停止命令
ttDaemonAdmin –start 启动 ttDaemonAdmin –stop 停止 或打开服务cmd-serviers.msc,找到相关服务启动或停止.
- 编程中经常看到上下文context,这个上下文指得是什么?
举个栗子:小美气呼呼对我说:“你去死吧”,我当时哭了. 场景1:小美刚转学到我们学校,我暗恋了她很久,有一天鼓足勇气,向她表白,小美气呼呼对我说:“你去死吧”,我当时就哭了.场景2我跟小美从小青梅竹马 ...
- 负载均衡服务器中存在大量的TIME_WAIT怎么解决
首先需要明白什么是TIME_WAIT.TIME_WAIT是在tcp断开连接时进行四次回收的时候,主动断开端在收到被动关闭端的FIN包并发送ACK包给被动关闭后进入的状态.这个状态默认情况下是2倍的MS ...
- 数组和json的相互转换
json_encode() <?php /*****一维数组*********/ //有键 $arr = array( 'a'=>1, 'b'=>2, 'c'=>3, ); $ ...
- SQLAlchemy基本操作和常用技巧
点击打开链接 Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量实例,非常好的一个学习SQLAlchemy的教程,需要的朋友可以参考下 python编程语言下的一款开源软件.提供 ...
- VUE-地区选择器(V-Distpicker)
V - Distpicker 地区选择器环境问题不多说,自己看文档,主要讲一下在实际使用过程中如何将下拉框的值赋值到对象属性上.文档: https://distpicker.pigjian.com/g ...