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. vsftpd.conf案例

    1. 匿名服务器的连接(独立的服务器) 在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:Anonymous_enable=yes (允许匿名登陆)Dirmessage_enab ...

  2. start-all.sh 启动时报错解决方案

    文件拥有者不是当前用户,或者文件权限没有修改权限 解决方法: sudo chmod 777  "文件名" 或者用 su root 登录,然后删除  再 exit Datanote服 ...

  3. eclipse 开发jsp 智能提示设置

    1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist 改动Auto Activation triggers for java的值为:.a ...

  4. 网页设计中11 款最好CSS框架

    网页设计和发展领域已经成为竞争激烈的虚拟世界.想要在网络的虚拟世界中生存,仅有一堆静止的在线网络应用是远远不够的,网页必须要有很多功能,配以让人无法抗拒的设计.网页编码一定要合适.精确,才能保证不发生 ...

  5. gcc的搜索路径,头文件和库

    1 抛开默认的搜索路径,自己指定搜索路径 第一,明确自己编写的代码所需要的头文件和库放在了哪里 第二,使用“-I”指定头文件的搜索路径,使用-rpath指定库的搜索路径 2 无论是本地编译还是交叉编译 ...

  6. YTU 2630: E2 驾驭const

    2630: E2 驾驭const 时间限制: 1 Sec  内存限制: 128 MB 提交: 673  解决: 491 题目描述 引入了const关键词,用于指定"常"对象及&qu ...

  7. 配置文件git config介绍

    Git有一个工具被称为git config,它允许你获得和设置配置变量:这些变量可以控制Git的外观和操作的各个方面. 一. 配置文件的存储位置 这些变量可以被存储在三个不同的位置: 1./etc/g ...

  8. JeePlus:目录

    ylbtech-JeePlus:目录 1.返回顶部 0. http://www.jeeplus.org/ 0.2.文档 http://wiki.jeeplus.org/docs/show/75 0.3 ...

  9. 利用 BASE64Encoder 对字符串进行加密 BASE64Decoder进行解密

    转自:https://blog.csdn.net/chenyongtu110/article/details/51694323

  10. mybatis中各种数据的映射类型

    Mybatis对应的java和数据库的数据类型,最后有图片 Mybatis                                  java                          ...