hdu 2333 Assemble 二分
来源:互联网 发布:淘宝店家开通花呗条件 编辑:程序博客网 时间:2024/05/20 11:20
二分质量,然后每次取大于等于这个质量最便宜的 来判断是否可行。
#include <iostream>#include <cstdio>#include<map>#include<string>#include<cstring>#include<algorithm>#include<vector>using namespace std;map<string,int> mp;int n,m;char ss[1005],ss2[1005];string s1,s2;struct node{ int c; int q;}t;vector<node> v[1005];int top;bool isok(int qq){ long long tot=0; for(int i=1;i<top;i++) { int nc=0x7fffffff; for(int j=0;j<v[i].size();j++) { if(v[i][j].q>=qq) { nc=min(nc,v[i][j].c); } } if(nc==0x7fffffff) return false; tot+=nc; if(tot>m) return false; } return tot<=m;}int main(){ int T; scanf("%d",&T); while(T--) { top=1; mp.clear(); int l=0,r=0x7fffffff,mid; scanf("%d%d",&n,&m); for(int i=0;i<=n;i++) { v[i].clear(); } for(int i=1;i<=n;i++) { scanf("%s%s%d%d",ss,ss2,&t.c,&t.q); s1=ss; int id=mp[s1]; if(!id) { mp[s1]=top++; v[top-1].push_back(t); } else { v[id].push_back(t); } } for(int i=1;i<top;i++) { int tzf=0; for(int j=0;j<v[i].size();j++) { tzf=max(tzf,v[i][j].q); } r=min(tzf,r); } int ans; while(l<=r) { mid=(l+r)/2; if(isok(mid)) {ans=mid;l=mid+1;} else r=mid-1; } printf("%d\n",ans); } return 0;}
4 0
- hdu 2333 Assemble 二分
- hdu 2333 Assemble 二分
- HDU 2333Assemble(简单二分)
- Hdoj 2333 Assemble 【二分】
- HDU 2333 & POJ 3497 & UVA 12124 Assemble (二分答案)
- hdu 2333 Assemble
- HDU 2333 && POJ 3497 && UVA 12124 Assemble(二分最大化最小值)
- HDU/HDOJ 2333 Assemble Northwestern Europe 2007
- hdu 2333Assemble(uvaoj 3971)贪心
- POJ3497 Assemble 二分+贪心
- HOJ 2608 Assemble(二分)
- LA_3635/HDU_2333 Assemble (二分)
- LA 3971 Assemble / 二分
- 12124Assemble【二分】
- HDU2333 Assemble 二分
- UVA 12124 Assemble(二分)
- HDU2333 Assemble(二分)
- POJ3497 Assemble(二分)
- SQL Server数据类型int、bigint、smallint和tinyint范围简析
- 天上掉下的表哥
- 诺基亚将被更名为“微软移动”?品牌会消失吗?
- Flex4与JavaScript交互
- 讲座:与迷茫为友的成长
- hdu 2333 Assemble 二分
- C/C++日常学习总结(第三篇)不能重载的运算符和不同基类继承产生的二义性
- 贪心——【三值的排序】
- e1s1之类的关联
- C#IO操作,删除指定目录下的所有文件夹和文件
- 媒体称刘汉在案件审讯后期崩溃 几乎每日一哭
- 面向对象三大特性---继承
- ios 初学者笔记3:objective-c 基础
- Mysql 性能优化20个原则(1)