uvalive 3971 Assemble】的更多相关文章

题目连接:3971 - Assemble 题目大意:有若干个零件, 每个零件给出的信息有种类, 名称, 价格, 质量,  现在给出一个金额, 要求在这个金额范围内, 将每个种类零件都买一个, 并且尽量让这些零件中质量最小的越大, 输出质量最小的值. 解题思路:首先可以用二分搜索确定质量, 然后在搜索的过程中要判断这个质量是否能被满足, 判断函数可以用贪心, 在每一类的零件中选择价格最低且质量大于等于当前质量的零件.(事先按照价格大小排序). #include <stdio.h> #includ…
UVALive 3971 题意:有b块钱.想要组装一台电脑,给出n个配件的种类,名字,价格,品质因子.若各种类配件各买一个,总价格<=b,求最差品质配件的最大品质因子. 思路: 求最大的最小值一般用二分法. 在(0.maxq)内进行二分,判定q作为最差品质因子是否可行. 大白书原题.比較考验代码功底. code: /* * @author Novicer * language : C++/C */ #include<iostream> #include<sstream> #i…
https://vjudge.net/problem/UVALive-3971 题意: 现在你要组装一台电脑,每个电脑的一种类型的配件都有多种选择,它们的名字是不同的. 现在给出已有的元件,每种类型都至少有一个元件.你有已知的预算,要求你找出以不超过预算的钱,每种类型的元件恰好选择一个,最低质量的元件的质量要尽量高,输出这个最高值. 思路: 从题意的叙述来看,最大化最小值,那么肯定是选用二分. 二分选择的量应该是质量. 接下来证明花费的钱是随着质量非递减的. 设当前的最小质量为x,那么把所有元件…
本题思路不难,但是要快速准确的AC有点儿考验代码功力. 看了大白书上的标程,大有所获. 用map和vector的结合给输入分组,这个数据结构的使用非常精美,恰到好处. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include&l…
题意:你有b元钱,有n个配件,每个配件有各类,品质因子,价格,要每种买一个,让最差的品质因子尽量大. 析:很简单的一个二分题,二分品质因子即可,每次计算要花的钱的多少,每次尽量买便宜且大的品质因子. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include &…
先从中找出性能最好的那个数, 在用钱比較少的去组合,能组出来就表明答案在mid的右边,反之在左边, #include<string.h> #include<map> #include<stdio.h> #include<iostream> #include<algorithm> using namespace std; map<string,int> vic;//以字符映射数字 int end,start; int num; int…
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1972 http://7xjob4.com1.z0.glb.clouddn.com/df5832a56667ea3317ca9166994f1eb6 题意:给电脑配件,价格和性能,求在指定总价内配件的最低性能最大. 思路:用二分方法,找出性能,使这个性能以上的配件能在指定价格内…
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1972 题意 给定预算,要求各种类配件一个,品质最小最大问题 思路 如刘书思路. 有一个O(n)时间判定答案是否正确的确定性or随机判断器 + 判断算法是现代算法,随机算法,量子加密的基础,必须要掌握的思路. 感想 1. Uva 很快过了,但是UvaLA怎么也不过,后来发…
题目: 给你b元钱,让你组装一台电脑,有n个配件,属性有 种类 名字 价格 品质,每种类型选至少一个,并且最小品质最大.输出这个最大的最小品质. 白书上说了,最小值最大的问题一般是二分来求解答案.在这里我们二分这个品质.这个题在判断时因为数据较小,所以线性查找了,如果遇到大数据就要排序+lower_bound了... 代码如下: #include <bits/stdc++.h> using namespace std; ; int cnt,n,b; map<string,int>…
题意: 你有b块钱想要组装一台电脑.给出n个配件的种类,品质和价格,要求每个种类的配件各买一个总价格不超过b且“品质最差配件”的品质因子应尽量大. 这种情况下STL的map的确很好用,学习学习 这种最大值最小的问题可以用二分法,自己写的二分会死循环,学习一下别人的二分. //#define LOCAL #include <vector> #include <cstdio> #include <string> #include <map> using name…