zoukankan      html  css  js  c++  java
  • CSU-1974 神奇药水

    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
    

    题解

    set模拟一下即可,因为x + y = 1,所以我们只需考虑x。如果是1即insert(x),-1就clear(), 0就看看set的队头元素是否比x小,队尾元素是否比x大,都满足输出yes否则输出no

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main() {
    	int n;
    	set<int> s1, s2;
    	while (scanf("%d", &n) != EOF) {
    		s1.clear();
    		s2.clear();
    		for (int i = 1; i <= n; i++) {
    			int q;
    			scanf("%d", &q);
    			double x1, y1;
    			scanf("%lf%lf", &x1, &y1);
    			int x = x1 * 100, y = y1 * 100;
    			switch (q) {
    			case 1:
    				s1.insert(x);
    				s2.insert(y);
    				break;
    			case -1:
    				s1.erase(x);
    				s2.erase(y);
    				break;
    			case 0:
    				if (s1.empty()) {
    					printf("No
    ");
    					break;
    				}
    				else if (*s1.begin() <= x && *(--s1.end()) >= x){
    					printf("Yes
    ");
    					break;
    				}
    				else {
    					printf("No
    ");
    					break;
    				}
    			}
    		}
    	}
    	return 0;
    }
    /**********************************************************************
    	Problem: 1974
    	User: Artoriax
    	Language: C++
    	Result: AC
    	Time:160 ms
    	Memory:2292 kb
    **********************************************************************/
    
    
  • 相关阅读:
    强化学习的基本迭代方法
    基于文本描述的事务聚类
    学习强化学习之前需要掌握的3种技能
    其它 华硕 ASAU S4100U 系统安装 win10安装 重装系统 Invalid Partition Table 解决
    数据分析 一些基本的知识
    Python 取样式的内容 合并多个文件的样式 自定义样式
    电商 Python 生成补单公司需要的评论格式3
    SpringBlade 本地图片上传 生成缩略图
    SQL Server 字符串截取
    SpringBlade 本地图片上传
  • 原文地址:https://www.cnblogs.com/artoriax/p/10349175.html
Copyright © 2011-2022 走看看