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)到 ...
随机推荐
- HTML问题 | 两个Input在同一行连着不留缝隙
方法1:让两个 input 连在一起写 不换行 <div class="inputDiv"> <input type="text" place ...
- Docker原理(开发技术分享转发)
Docker原理Docker是啥Docker是一个程序运行.测试.交付的开放平台,Docker被设计为能够使你快速地交付应用.在Docker中,你可以将你的程序分为不同的 基础部分,对于每一个基础部分 ...
- ubuntu系统在安装好mysql后,出现ERROR 2002(HY000: Can't to local MySQL server through socket '/var/run/mysqld/mysqld.sock')(2)(图文详解)
不多说,直接上干货! 问题详情 我在写此博客之前,看了网上各种资料,写的太冗余和繁琐杂乱.最简单的解决方法莫过于我这篇博客.直接如下. 这是liux套接字网络的特性,win平台不会有这个问题. 解决方 ...
- Spark 1.6.2 + Beam 2.0.0读取Mongodb数据进行相应逻辑处理
不多说,直接上干货! http://blog.csdn.net/jianglushou9763/article/details/73332805 如果需要 APACHE BEAM2.0.0版本如何支持 ...
- [DForm]我也来做自定义Winform之另类标题栏重绘
据说得有楔子 按照惯例,先来几张样例图(注:为了展示窗口阴影效果,截图范围向外扩展了些,各位凭想象吧). 还要来个序 其实,很多年没写过Winform了,前端时间在 ...
- PHP常用数组操作方法汇总
array_change_key_case -- 返回字符串键名全为小写或大写的数组array_chunk -- 将一个数组分割成多个array_combine -- 创建一个数组,用一个数组的值作为 ...
- 一、IP地址
IP地址 1)网络地址 IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络. 2)广播地址 广播地址通常称为直接广播地址,是为了区分受限广播地址. 广播地址与网 ...
- 冒泡排序——Java实现
一.排序思想 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤, ...
- 【代码笔记】XML深入学习:DTD约束与DTD语法(1)
2015-12-27 文件名 student.xml <?xml version="1.0" encoding="GB2312" standalon ...
- caffe-windows之手写体数字识别例程mnist
caffe-windows之手写体数字识别例程mnist 一.训练测试网络模型 1.准备数据 Caffe不是直接处理原始数据的,而是由预处理程序将原始数据变换存储为LMDB格式,这种方式可以保持较高的 ...