UVA 3971 Assemble -
来源:互联网 发布:恶搞锁屏软件 编辑:程序博客网 时间:2024/05/17 13:06
题目地址:http://vjudge.net/problem/UVALive-3971
#include <bits/stdc++.h>using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)const int maxn=1000+3,INF=0x3f3f3f3f;std::map<string, int> ID;struct Component{int price,quality;};std::vector<std::vector<Component> > pc(maxn);int n,b;bool Check(int MinQ){int MinP=0,temp;REP(i,0,ID.size()-1){temp=INF;REP(j,0,pc[i].size()-1) if(pc[i][j].quality>=MinQ) temp=min(temp,pc[i][j].price); MinP+=temp;if(temp>=INF||MinP>b) return false;}return true;}int BinarySearch(int L,int R){while(L<R){int mid=L+((R-L+1)>>1); //加括号if(Check(mid)) L=mid;else R=mid-1;}return L;}int main(int argc, char const *argv[]){int O_O; scanf("%d",&O_O);while(O_O--){scanf("%d %d",&n,&b);ID.clear(); REP(i,0,n) pc[i].clear();int MaxQ=-INF,MinQ=INF;REP(i,1,n){char cp[25]; int id,p,q;scanf("%s",cp);if(ID.count(string(cp))) id=ID[cp];else id=ID.size(),ID[cp]=id;scanf("%s%d%d",cp,&p,&q);pc[id].push_back(Component{p,q});MinQ=min(MinQ,q); MaxQ=max(MaxQ,q);}printf("%d\n",BinarySearch(MinQ,MaxQ));}return 0;}
0 0
- UVA 3971 Assemble -
- UVA 12124 UVAlive 3971 Assemble(二分 + 贪心)
- UVA LA 3971-(Assemble)二分答案
- UVA 12124 UVAlive 3971 Assemble(二分 + 贪心)
- UVa Live Archive 3971 & UVa 12124 & POJ 3497 - Assemble
- Uva 12124 Assemble
- UVA - 12124 Assemble
- UVa:12124 Assemble
- UVA之12124 - Assemble
- UVa 12124 - Assemble
- uva 12124 - Assemble
- UVA 12124 Assemble(二分)
- UVA 12124 - Assemble 解题报告
- UVA 12124 - Assemble(二分答案)
- UVA 12124 - Assemble(二分)
- uva 12124 —— Assemble
- uva 12124 Assemble 模拟+二分
- UVALive - 3971 Assemble
- AndroidStudio设置package presentation
- predis
- hdu5090Game with Pearls(二分图匹配)
- 08. File & Network I/O
- platform_set_drvdata和platform_get_drvdata
- UVA 3971 Assemble -
- 常用数据类型对应字节数 32/64
- unity 脚本的执行先后顺序
- 从零开始搭建Raspberry Pi机器视觉编程环境
- Android Studio显示行数
- WinSCP 中普通用户以 root 身份登录 Linux
- c#txt文件存到string数组中报错
- C++ typedef和typename关键字
- CSS3 修改和去除移动端点击事件出现的背景框 (tap-highlight-color)