La 3971
来源:互联网 发布:手机淘宝怎样实人认证 编辑:程序博客网 时间:2024/05/20 22:29
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<map>#include<vector>using namespace std;#define INF 0x7f7f7f7f#define MAXN (1000+5)#define MAXC (20+5)struct node{int id, gd, pr;};int n, rn, b;map<string, int> ID;vector<node> com[MAXN];void init(){ID.clear();for(int i = 0; i < MAXN; i++) com[i].clear(); }int ID_maker(char* name){string s(name);if(!ID.count(s)) ID[s] = ++n;return ID[s];}bool check(int min_g){int ret = 0;for(int i = 1; i <= n; i++){int small = INF, tmp = com[i].size();for(int j = 0; j < tmp; j++){ if(com[i][j].gd >= min_g) small = min(small, com[i][j].pr);}if(small == INF) return false;ret += small;if(ret > b) return false;}return true;}int main(){int T;scanf("%d", &T);while(T--){init();scanf("%d%d", &rn, &b);n = 0;char name[MAXC], tmp[MAXC];int R = 0;for(int i = 1; i <= rn; i++){int g, p, id;scanf("%s%s%d%d\n", name, tmp, &p, &g);id = ID_maker(name);com[id].push_back((node){id, g, p});R = max(R, g);}int L = 0;while(L < R){int mid = L + (R-L+1)/2;if(check(mid)) L = mid;else R = mid-1;}printf("%d\n", L);}return 0;}
0 0
- La 3971
- LA 3971 Assemble / 二分
- LA 3971 二分
- LA 3971 组装电脑
- LA 3971 组装电脑
- la la la, la la la
- LA 3971 Assemble 组装电脑
- UVA LA 3971-(Assemble)二分答案
- 组装电脑 LA 3971 二分答案
- UVA-LA 3971 组装电脑 二分枚举
- LA 3971 Assemble(组装电脑 最小值最大 二分答案)
- 组装电脑(Assemble,NWERC 2007,LA 3971)
- 二分+判断,最小值最大(组装电脑,LA 3971)
- LA 3942
- LA 4670
- LA 3135
- LA 3644
- LA 3027
- kafka搭建
- STM8 I2C的学习
- Spring.Net + NHibernate 入门例子
- Combination Sum
- HTML5中div、article、section的区别及使用介绍
- La 3971
- 字典的快速赋值 setValuesForKeysWithDictionary
- ios学习--UISegmentedControl详解
- 安卓WebView的那些坑
- 第十二周项目1-实现复数类中的运算符重载(3)
- Django开发系列之二
- jquery中ajax如何返回值到上层函数里?
- La 3635
- hdu4253 二分+MST(经典模型)