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 组装电脑的更多相关文章

  1. LA 3971 组装电脑(二分)

    https://vjudge.net/problem/UVALive-3971 题意:你有b块钱,想要组装一台电脑.给出n个配件各自的种类.品质因子和价格,要求每种类型的配件各买一个,总价格不超过b, ...

  2. UVALive 3971 Assemble(模拟 + 二分)

    UVALive 3971 题意:有b块钱.想要组装一台电脑,给出n个配件的种类,名字,价格,品质因子.若各种类配件各买一个,总价格<=b,求最差品质配件的最大品质因子. 思路: 求最大的最小值一 ...

  3. intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!

    http://www.365pcbuy.com/article-411.html 特别提示:此文已经于2016年10月12日更新!内容变动较大,请细细品鉴! 如何为客户推荐高性价比机型是我站的重要工作 ...

  4. 建造者模式(Builder)——从组装电脑开始

    建造者模式(Builder)--从组装电脑开始 建造者模式概括起来就是将不同独立的组件按照一定的条件组合起来构成一个相对业务完整的对象.调用者无需知道构造的过程. 我们从组装电脑开始 让我们从买组装电 ...

  5. LA3971组装电脑

    题意:       你有b块钱,想要组装一台电脑,给你提供一些零件,每种零件提供一个或几个,组装电脑的前提是每种零件只能也必须选择一个,每种零件都有自己的种类,名字,价格,还有品质,要求是在能配成电脑 ...

  6. 【二分答案】 【POJ3497】 【Northwestern Europe 2007】 Assemble 组装电脑

    Assemble Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3171   Accepted: 1013 Descript ...

  7. uvalive 3971 Assemble

    https://vjudge.net/problem/UVALive-3971 题意: 现在你要组装一台电脑,每个电脑的一种类型的配件都有多种选择,它们的名字是不同的. 现在给出已有的元件,每种类型都 ...

  8. LA3971 组装电脑

    思路:二分,就是在不超过b的预算下,使得品质的最小值最大化.关键还是判断函数吧. 假设答案为x,判断函数,就是每一个种类的配件的品质最基本的品质要大于x,然后找出最小的值.这样的配件品质之和的价格要小 ...

  9. OC 复合 组装电脑

    键盘类 #import <Foundation/Foundation.h> @interface Keyboard : NSObject @property(strong,nonatomi ...

随机推荐

  1. Docker容器时间与宿主机时间不一致的问题

    通过date命令查看时间 查看主机时间   1 2 [root@localhost ~]# date 2016年 07月 27日 星期三 22:42:44 CST 查看容器时间   1 2 root@ ...

  2. stream数据流

    首先必须先要了解Buffer,Buffer是js和c++的结合体,类数组,通常与Stream一起用: 1. (1).Buffer是个类,因此可以构建成对象 (2).buf具有数组的性质 字符串转换成二 ...

  3. installing mysql,this may take a few minutes,hold on plz wdcp卡住解决办法

    centos6安装wdcp时make in progress卡住的解决办法 今天在一台centos6的vps上安装wdcp出现的这个问题,到安装程序滚动至下面这里时出现"卡死". ...

  4. Hibernate操作指南-搭建一个简单的示例(基于原生API和注解)

  5. 简介 jCanvas:当 jQuery遇上HTML5 Canvas

    https://github.com/caleb531/jcanvas HTML5 可以直接在你的网页中使用 <canvas> 元素及其相关的 JavaScript API绘制的图形. 在 ...

  6. Caused by: java.sql.SQLException: ORA-00918: column ambiguously defined

    外层t.*的时候,可能发现重复字段,所以检查内层的sql是否出现了重复字段的查询.

  7. Leetcode: Count The Repetitions

    Define S = [s,n] as the string S which consists of n connected strings s. For example, ["abc&qu ...

  8. javaSE第三篇

    1.classpath: set classpath = 类路径 用来找class文件 set classpath = .;(默认表示当前路径   2.数组的拷贝 方法一:Arrays.copyOf( ...

  9. Java中String、StringBuffer、StringBuilder区别与理解

    一.先比较String.StringBuffer.StringBuilder变量的HashCode值 使用System.out.println(obj.hashcode())输出的时对象的哈希码, 而 ...

  10. Ubuntu常用软件安装

    1.好用的截图Shutter,sudo apt-get install shutter