Question:http://poj.org/problem?id=1018
问题点:枚举。
 Memory: 564K        Time: 329MS
Language: C++ Result: Accepted #include <iostream>
#include <iomanip>
using namespace std; struct BP
{
int i;//第i种设备
int B;//设备带宽
int P;//设备价格
};
int cmp1(const void* a,const void* b)//排序按 i,P 升序排列
{
BP* ca = (BP*)a;
BP* cb = (BP*)b;
return (ca->i==cb->i?(ca->P - cb->P):(ca->i - cb->i));
}
int cmp2(const void* a,const void* b)//排序按 B 升序排列
{
BP* ca = (BP*)a;
BP* cb = (BP*)b;
return ca->B - cb->B;
}
int main()
{
int eg,num;
cin>>eg;
BP bp[];//排序按 i,P 升序排列
BP orderB[];//排序按 B 升序排列
double maxBP;//结果
int same,maxB,temp,i,j,k,cnt,idx;
while(eg--)
{
cin>>num;
memset(bp,,sizeof(bp));
k = cnt = maxB = ;
maxBP = ;
for(i=;i<num;i++)
{
cin>>same;//一种设备的数量
cnt += same;//所有设备的数量
temp = ;//记录一种设备的最大带宽
for(j=;j<same;j++,k++)
{
bp[k].i = i;
cin>>bp[k].B>>bp[k].P;
temp = (temp> && temp>bp[k].B)?temp:bp[k].B;
}
maxB = (maxB> && maxB<temp)?maxB:temp;//取所有设备最大带宽的的最小值,即B的取值上限
}
memcpy(orderB,bp,sizeof(bp));
qsort(bp,cnt,sizeof(BP),cmp1);//排序按 i,P 升序排列,用于取各类设备中大于B的最小P
qsort(orderB,cnt,sizeof(BP),cmp2);//排序按 B 升序排列 ,用于枚举B
for(i=;i<cnt && orderB[i].B<=maxB;i++)
{
k = orderB[i].B;//枚举B
temp = orderB[i].P;//当前情况 最小P
for(j=,idx=;j<cnt && idx < num;j++)
{
if(bp[j].i == orderB[i].i || bp[j].B < k || idx > bp[j].i) continue;
temp += bp[j].P;
idx = bp[j].i+;//如果第j类设备已取,idx指向下一类设备,(不能使用 idx++)
}
maxBP = (maxBP > && maxBP > double(k)/temp?maxBP:double(k)/temp);//取最大B/P值
}
cout<<fixed<<setprecision()<<maxBP<<endl;//输出必须小数点后3位,如1要输出1.000
}
//system("pause");
return ;
}

北大ACM(POJ1018-Communication System)的更多相关文章

  1. POJ1018 Communication System

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26738   Accepted: 9546 Description We ...

  2. POJ 1018 Communication System(树形DP)

    Description We have received an order from Pizoor Communications Inc. for a special communication sy ...

  3. 北大ACM - POJ试题分类(转自EXP)

    北大ACM - POJ试题分类 -- By EXP 2017-12-03 转载请注明出处: by EXP http://exp-blog.com/2018/06/28/pid-38/ 相关推荐文: 旧 ...

  4. Communication System(dp)

    Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...

  5. poj 1018 Communication System

    点击打开链接 Communication System Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21007   Acc ...

  6. poj 1018 Communication System 枚举 VS 贪心

    Communication System Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21631   Accepted:  ...

  7. POJ 1018 Communication System(贪心)

    Description We have received an order from Pizoor Communications Inc. for a special communication sy ...

  8. F - Communication System

    We have received an order from Pizoor Communications Inc. for a special communication system. The sy ...

  9. POJ 1018 Communication System (动态规划)

    We have received an order from Pizoor Communications Inc. for a special communication system. The sy ...

  10. 北大 ACM 分类 汇总

    1.搜索 //回溯 2.DP(动态规划) 3.贪心 北大ACM题分类2009-01-27 1 4.图论 //Dijkstra.最小生成树.网络流 5.数论 //解模线性方程 6.计算几何 //凸壳.同 ...

随机推荐

  1. [TypeScript] Collect Related Strings in a String Enum in TypeScript

    As of TypeScript 2.4, it is now possible to define string enums, or more precisely, enums with strin ...

  2. reactjs 视频教程

    近期玩了一下react,感觉挺不错的,搜了一下没有看到什么视频教程,于是自己便录制了几个入门视频.希望能够帮到大家.已经上传土豆了,能够点击以下的链接查看. http://www.tudou.com/ ...

  3. 智能社区--HI3516C可视门禁研发出来咯

    铝壳.非常大气的外壳. 200W像素,HI3516C,携带server.创新的产品.欢迎交流:QQ237753582 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5u ...

  4. 基于OAS设计可扩展OpenAPI

    前言 随着互联网行业的兴起,开发模式已逐步转换为微服务自治:小团队开发微服务,然后通过Restful接口相互调用.开发者们越来越渴望能够使用一种“官话”进行流畅的沟通,甚至实现多种编程语言系统的自动化 ...

  5. HDU 5428 分解质因数

                                                                                                   The F ...

  6. ios22--动画

    控制器: // // ViewController.m // 07-渐变动画 // // Created by xiaomage on 15/12/30. // Copyright © 2015年 小 ...

  7. URAL 1057 数位dp

    题目传送门http://acm.timus.ru/problem.aspx?space=1&num=1057 最近在学习数位dp,具体姿势可以参照这篇论文:http://wenku.baidu ...

  8. hive使用

    运行hadoop [root@hadoop0 ~]# start-all.sh 进入命令行[root@hadoop0 ~]# hive 查询昨天的表 hive> select * from st ...

  9. [Codeforces 1037E] Trip

    [题目链接] http://codeforces.com/problemset/problem/1037/E [算法] 首先离线 , 将问题倒过来考虑 , 转化为 : 每次删除一条边 , 此时最多有多 ...

  10. 杂项-Java:Tomcat

    ylbtech-杂项-Java:Tomcat 1.返回顶部 1. Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目, ...