UVA 12124 Assemble(二分答案)
题目链接:https://vjudge.net/problem/UVA-12124
垃圾vjudge毁我青春!!
首先这道题是解决“最小值最大”的问题,所以要二分答案。
在这里我们二分$quality$,看是否可以组装起一台不超过$b$元的电脑。然后处理时用map映射一下。
AC代码:
#include<cstdio>
#include<iostream>
#include<map>
#include<vector>
using namespace std; const int maxn=; struct node{
int price;
int quality;
}; map<string,int> mp;
vector<node> cmp[maxn]; int n,b,cnt; int get_id(string s){
if(!mp.count(s)) mp[s]=cnt++;
return mp[s];
} bool ok(int q){
int sum=;
for(int i=;i<cnt;i++){
int cheapest=b+,m=cmp[i].size();
for(int j=;j<m;j++)
if(cmp[i][j].quality>=q) cheapest=min(cheapest,cmp[i][j].price);
if(cheapest==b+) return ;
sum+=cheapest;
if(sum>b) return ;
}
return ;
} int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&b);
mp.clear();
cnt=;
int maxq=;
for(int i=;i<n;i++) cmp[i].clear();
for(int i=;i<n;i++){
char type[],name[];
int p,q;
scanf("%s%s%d%d",type,name,&p,&q);
maxq=max(maxq,q);
cmp[get_id(type)].push_back((node){p,q});
}
int L=,R=maxq;
while(L<R){
int M=L+(R-L+)/;
if(ok(M)) L=M; else R=M-;
}
printf("%d\n",L);
}
return ;
}
AC代码
UVA 12124 Assemble(二分答案)的更多相关文章
- 【二分答案+贪心】解决“最小值最大”问题(UVa 12124 - Assemble)
Problem A - Assemble Time limit: 2 seconds Recently your team noticed that the computer you use to p ...
- 紫书 习题 11-10 UVa 12264 (二分答案+最大流)
书上写的是UVa 12011, 实际上是 12264 参考了https://blog.csdn.net/xl2015190026/article/details/51902823 这道题就是求出一种最 ...
- 紫书 例题8-10 UVa 714 (二分答案)
这道题让最大值最小, 显然是二分答案 当题目求的是最大值最小, 最小值最大, 这个时候就要想到二分答案 为什么可以二分答案呢, 因为这个时候解是单调性的, 如果简单粗暴一点 就全部枚举一遍, 验证答案 ...
- uva 12124 - Assemble
最大值最小的题: 直接用二分,比较简单: 不过我的二分老是不用好.有时间总结一下! #include<cstdio> #include<map> #include<vec ...
- 【二分答案】 【POJ3497】 【Northwestern Europe 2007】 Assemble 组装电脑
Assemble Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3171 Accepted: 1013 Descript ...
- UVa 714 Copying Books - 二分答案
求使最大值最小,可以想到二分答案. 然后再根据题目意思乱搞一下,按要求输出斜杠(这道题觉得就这一个地方难). Code /** * UVa * Problem#12627 * Accepted * T ...
- UVA 11090 Going in Cycle!!(二分答案+判负环)
在加权有向图中求平均权值最小的回路. 一上手没有思路,看到“回路”,第一想法就是找连通分量,可又是加权图,没什么好思路,那就转换题意:由求回路权值->判负环,求最小值->常用二分答案. 二 ...
- 【二分答案+贪心】UVa 1335 - Beijing Guards
Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the Imperial City ...
- UVA 12097 Pie(二分答案)
题目链接: 这道题虽然不是一道典型的二分答案题,但同样也可以用二分答案来做. 来二分面积为$area$的派,然后看看条件是否矛盾. 与其矛盾的便是$f+1$个人是否每个人都会有. 一个半径为$r$的派 ...
随机推荐
- C#关于文件的创建
若使用文件夹Directory类判断了文件夹的存在,后面的文件就不需要使用File类来判断文件的存在与否和创建,只需要在前面判断过得文件夹路径后面加上文件的名字即可,它会自动判断文件是否存在,若不存在 ...
- python笔记20(面向对象课程二)
今日内容 类成员 成员修饰符 内容回顾 & 补充 三大特性 封装 函数封装到类 数据封装到对象 * class Foo: def __init__(self,name,age): self.n ...
- HTML link标签
<link> 标签定义文档与外部资源的关系. 最常见的用途是链接 样式表.CSS
- 测试准确率计算方法说明 pre.eq(target).float().sum().item()
测试准确率计算方法说明 pre.eq(target).float().sum().item() 待办 pred = logits.argmax(dim=1) correct += pred.eq(ta ...
- cpu几核
import psutil def GetCpuInfo(): cpu_count = psutil.cpu_count(logical=False) #1代表单核CPU,2代表双核CPU xc_co ...
- B - 青蛙的约会
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面. 它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止. 可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方 ...
- Windows7自定义主题
一.破解主题限制 Windows系统默认只能允许用户使用系统自带主题(非壁纸),即使用户安装了第三方主题,Windows也会限制很多地方,导致第三方主题用起来怪怪的. 故此,想要一个可以自定义主题的W ...
- javaSE--基础02
本章目标 一. 运算符★赋值运算符关系运算符逻辑运算符 三元运算符 二. 进制与位运算符[选学] 三. 流程控制结构 √ 四. 顺序结构 √ 五. 分支结构★ 六. 循环结构★ 七. ...
- php设计模式之简单工厂模式代码实例
<?php header("Content-type:text/html;charset=utf-8"); /** * 共同接口 */ interface db { func ...
- HTML5-语义化
什么是语义化?就是用合理.正确的标签来展示内容,比如h1~h6定义标题. 语义化优点: 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构. 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权 ...