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 ...
随机推荐
- spring-amqp 动态创建queue、exchange、binding
pom.xml <!-- mq 依赖 --> <dependency> <groupId>com.rabbitmq</groupId> <arti ...
- 在.net中调用Delphi dll的Pchar转换
Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是De ...
- .NET client connection Limit
调试出了一个诡异的问题,使用多个进程没问题,单进程出现了. fix: //默认限制为2个连接 //public const int DefaultPersistentConnectionLimit = ...
- GPS部标平台的架构设计(四)-百度地图设计
部标GPS软件平台之百度地图设计 地图是客户端中不可缺少的一个模块,很多人在设计和画图时候,喜欢加上地图引擎这样高大上的字眼,显得自己的平台有内涵,说白了就是用第三方的SDK来开发,早期的GPS监 控 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- FTP服务器的安装和配置
FTP服务器的安装和配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本来是想出一个源码安装ftp的教程,但是想想还是算了,如果你自学python有个10天的话你自己就能写一个f ...
- 代码审计之SQL注入
0x00概况说明 0x01报错注入及利用 环境说明 kali LAMP 0x0a 核心代码 现在注入的主要原因是程序员在写sql语句的时候还是通过最原始的语句拼接来完成,另外SQL语句有Select. ...
- 移动端rem实现响应布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- centos查看实时网络带宽占用情况方法
Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. centos安装iftop的命令如下: ...
- 让Android程序获得系统的权限,实现关机重启,静默安装等功能
引用:http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.html android想要获得系统权限有几种途径,一种就是你的程序固化的系 ...