Assemblepoj3497
2016-07-06 19:12
218 查看
Assemble
1 18 800 processor 3500_MHz 66 5 processor 4200_MHz 103 7 processor 5000_MHz 156 9 processor 6000_MHz 219 12 memory 1_GB 35 3 memory 2_GB 88 6 memory 4_GB 170 12 mainbord all_onboard 52 10 harddisk 250_GB 54 10 harddisk 500_FB 99 12 casing midi 36 10 monitor 17_inch 157 5 monitor 19_inch 175 7 monitor 20_inch 210 9 monitor 22_inch 293 12 mouse cordless_optical 18 12 mouse microsoft 30 9 keyboard office 4 10Sample Output 9SourceNorthwestern Europe 2007 |
#include<cstring> #include<iostream> #include<map> #include<string> #include<cstdio> #include<algorithm> using namespace std; const int N=1007; map<string ,int>type; struct data { int v,c,t; }d[N]; int n,m; int vis[N]; bool cmp(data a,data b) { if(a.c==b.c) return a.v>b.v; return a.c<b.c; } int all; bool ok(int x) { memset(vis,0,sizeof vis); int coun=1,cost=0; for(int i=1;i<=n;i++) { if(d[i].v>=x&&vis[d[i].t]==0) { // printf("d[%d].t=%d v:%d x:%d \n",i,d[i].t,d[i].v,x); vis[d[i].t]=1; coun++; cost+=d[i].c; if(coun==all) break; if(cost>m) return 0; } } // printf("coun:%d all:%d\n",coun,all); if(cost>m) return 0; if(coun!=all) return 0; return 1; } char ss[40],str[40]; int main() { int T; scanf("%d",&T); while(T--) { type.clear(); scanf("%d%d",&n,&m); int le=0,ri=0,mid; all=1; for(int i=1;i<=n;i++) { // string a,b; int c,e; //cin>>a>>b>>c>>e; //此处不要用cin,会超时 scanf("%s%s%d%d",ss,str,&c,&e); if(type[ss]==0) type[ss]=all++; d[i].t=type[ss]; d[i].v=e; d[i].c=c; ri=max(ri,d[i].v); } sort(d+1,d+n+1,cmp); while(le<=ri) { mid=(le+ri)/2; if(ok(mid)) { le=mid+1; } else ri=mid-1; } printf("%d\n",le-1); } return 0; }
相关文章推荐
- 微信公众帐号开发教程第13篇-图文消息全攻略
- 微信公众帐号开发教程第12篇-符号表情的发送(下)
- MyEclipse10安装JBPM3.2.3
- 列表分页小结2
- rsyslog性能表现
- 如何制作安卓项目gif效果图及其简单菜单munu的计算问题
- 创建ovs网桥
- Spring @Transactional事物配置无效原因
- Win10好用吗?简单几步改造让Windows 10更好用
- COCI2011/2012 Contest#1 F Solution
- 微信公众帐号开发教程第9篇-QQ表情的发送与接收
- java 二叉树(十)前九篇二叉树的综合测试
- Eclipse 的单步调试
- android 通知
- 数据结构之---树
- react调用原生iOS方法
- java集合的简要体系结构
- 2016SDAU课程练习四1006 Problem F
- Android之权限大全
- POJ 1742 Coins