UVALive 3971 组装电脑
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
题意:给电脑配件,价格和性能,求在指定总价内配件的最低性能最大。
思路:用二分方法,找出性能,使这个性能以上的配件能在指定价格内买到,最小值最大问题。
#include <bits/stdc++.h>
using namespace std; const int maxn=+; int n,b,num;
char typec[],namec[];
int price,quality;
int fp[maxn][maxn],fq[maxn][maxn],m[maxn]; vector <string> tp;
void trans()
{
int i,j,l;
string s=typec;
l=tp.size();
for(i=;i<l;i++)
{
if(tp[i]==s)
{
m[i+]++;
fp[i+][m[i+]]=price;
fq[i+][m[i+]]=quality;
return;
}
}
tp.push_back(s);
m[l+]++;
fp[l+][m[l+]]=price;
fq[l+][m[l+]]=quality;
} int check(int qu)
{
int i,j,sum=;
for(i=;i<=num;i++)
{
int mi=;
for(j=;j<=m[i];j++)
{
if(fq[i][j]>=qu && fp[i][j]<mi)
mi=fp[i][j];
}
if(mi==)
return ;
sum+=mi;
}
if(sum<=b)
return ;
else
return ;
} int main()
{
int T;
int i,j;
scanf("%d",&T);
while(T--)
{
scanf("%d %d",&n,&b); memset(m,,sizeof(m));
tp.clear();
for(i=;i<=n;i++)
{
scanf("%s %s %d %d",typec,namec,&price,&quality);
trans();
}
num=tp.size(); int l=,r=;
while(l+<r)
{
int mid=(l+r)/;
if(check(mid))
{
l=mid;
}
else
{
r=mid;
}
} printf("%d\n",l);
}
return ;
}
UVALive 3971 组装电脑的更多相关文章
- LA 3971 组装电脑(二分)
https://vjudge.net/problem/UVALive-3971 题意:你有b块钱,想要组装一台电脑.给出n个配件各自的种类.品质因子和价格,要求每种类型的配件各买一个,总价格不超过b, ...
- UVALive 3971 Assemble(模拟 + 二分)
UVALive 3971 题意:有b块钱.想要组装一台电脑,给出n个配件的种类,名字,价格,品质因子.若各种类配件各买一个,总价格<=b,求最差品质配件的最大品质因子. 思路: 求最大的最小值一 ...
- intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!
http://www.365pcbuy.com/article-411.html 特别提示:此文已经于2016年10月12日更新!内容变动较大,请细细品鉴! 如何为客户推荐高性价比机型是我站的重要工作 ...
- 建造者模式(Builder)——从组装电脑开始
建造者模式(Builder)--从组装电脑开始 建造者模式概括起来就是将不同独立的组件按照一定的条件组合起来构成一个相对业务完整的对象.调用者无需知道构造的过程. 我们从组装电脑开始 让我们从买组装电 ...
- LA3971组装电脑
题意: 你有b块钱,想要组装一台电脑,给你提供一些零件,每种零件提供一个或几个,组装电脑的前提是每种零件只能也必须选择一个,每种零件都有自己的种类,名字,价格,还有品质,要求是在能配成电脑 ...
- 【二分答案】 【POJ3497】 【Northwestern Europe 2007】 Assemble 组装电脑
Assemble Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3171 Accepted: 1013 Descript ...
- uvalive 3971 Assemble
https://vjudge.net/problem/UVALive-3971 题意: 现在你要组装一台电脑,每个电脑的一种类型的配件都有多种选择,它们的名字是不同的. 现在给出已有的元件,每种类型都 ...
- LA3971 组装电脑
思路:二分,就是在不超过b的预算下,使得品质的最小值最大化.关键还是判断函数吧. 假设答案为x,判断函数,就是每一个种类的配件的品质最基本的品质要大于x,然后找出最小的值.这样的配件品质之和的价格要小 ...
- OC 复合 组装电脑
键盘类 #import <Foundation/Foundation.h> @interface Keyboard : NSObject @property(strong,nonatomi ...
随机推荐
- SpringMVC常用配置-处理程序异常以及404错误
- 4,4s屏幕过渡页处理
//#import "sys/utsname.h" struct utsname systemInfo; uname(&systemInfo); NSString *dev ...
- spark转换集合为RDD
SparkContext可以通过parallelize把一个集合转换为RDD def main(args: Array[String]): Unit = { val conf = new SparkC ...
- [原创] [YCM] YouCompleteMe安装完全指南
因为实在实在受不鸟ctags了: 代码中有很多类具有相同名字的变量, 比如 "id". 当我想看下当前的这个 "id" 到底是哪个id的时候, 可怕的事情粗线了 ...
- 关于JS嵌套点击事件的问题。
$().click() 是点击命令$().click(function(){代码}) 是绑定click事件,并不会直接运行.所以在嵌套的时候就有可能出现重复绑定的问题.下面是使用jsonp跨站访问代码 ...
- 点餐系统sprint3总结
转眼间,sprint3也结束了.意味着软件工程的课程结束了,我们的项目也完成了.在队友们的认真学习,专注打码,辛苦赶工后,我们的项目完成了.显然是仓促中完成的,没有完美的界面.没有无bug的项目,但是 ...
- Leetcode: Design Phone Directory
Design a Phone Directory which supports the following operations: get: Provide a number which is not ...
- android 横向滚动条
/*** * 横向滚动条,修改版,从左向右滚动,支持html代码和html里面的网络图片 */public class MarqueeView extends LinearLayout { priva ...
- CentOS-7下安装MySQL5.6.22
参考: http://www.2cto.com/database/201501/371451.html 安装环境 CentOS版本:CentOS-7 因为之前安装过,没有成功,但是有之前安装的文件 ...
- 夺命雷公狗-----React_native---2---sdk的安装
首先回到刚才的那个android的目录下,创建一个sdk文件夹 解压完成后目录结构如下所示: 然后就来设置环境变量,我们需要添加一个"ANDROID_HOME" 然后将这3个文件夹 ...