zoj 1409 Communication System
/*如果要一个物体的多种属性,最好用结构体,不要用二维数组或者多维数组。用多维数组进行关键字排序很不稳定 */
/*给每个设备的所有价格排序,每个设备选取恰好比已知带宽大的价格(这个时候的比例最大) 循环每个设备就得到所有价格综合 然后得到该带宽下的B/P
比较所有带宽的B/P 选取最大的就是所求的*/
#include <stdlib.h>
#include <stdio.h>
#define true 1
#define false 0
typedef struct
{ int b, p;
}SYS;
SYS sys[][];
int cmp(const void * a, const void * b)
{
SYS * c = (SYS *) a;
SYS * d = (SYS *) b;
return c -> p - d -> p;
} int main()
{
int n,i,j,sum,k,could,t;
int m[], bc;
int b[];/*记录每种带宽*/
double max,temp;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
bc = ;
for( i = ; i < n; i++)
{
scanf("%d",&m[i]);
for( j = ; j < m[i]; j++)
{
scanf("%d%d",&sys[i][j].b,&sys[i][j].p) ;
b[bc++] = sys[i][j].b;/*记录所有带宽的值,然后排序 */
}
qsort(sys[i], m[i], sizeof(SYS), cmp);
}
max = ;
for( k = ; k < bc; k++)/*循环每个带宽 */
{
sum = ;
could = true;
for(i = ; i < n; i++)/*每个设备 */
{
for(j = ; j < m[i]; j++)/*每个具体情况 */
if(sys[i][j].b >= b[k])/*从小到大,贪心 如果刚好比他大 */
{
sum += sys[i][j].p;/*就记录这个设备的价格,然后跳到下一个设备 */
break;
}
if(j == m[i])/*如果是循环到最后就证明是这个带宽是最大的就不用处理 */
{
could = false;
break;
}
}
if(could)/*如果这个带宽是可行的 */
{
temp = 1.0*b[k]/ sum;
max = max > temp ? max : temp;
}
}
printf("%.3lf\n",max); }
return ;
}
/*
1
3
2 120 80 155 40
3 100 25 150 35 80 25
2 100 100 120 110
*/
zoj 1409 Communication System的更多相关文章
- ZOJ 1409 communication system 双变量型的DP
这个题目一开始不知道如何下手,感觉很像背包,里面有两个变量,一个带宽B,一个价格P,有n个设备,每个设备有k个可选的器材(只需选一个),每个器材都有自己的B和P, n个设备选n个器材,最终,FB=所有 ...
- Communication System(dp)
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...
- poj 1018 Communication System
点击打开链接 Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21007 Acc ...
- poj 1018 Communication System 枚举 VS 贪心
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21631 Accepted: ...
- POJ 1018 Communication System(贪心)
Description We have received an order from Pizoor Communications Inc. for a special communication sy ...
- F - Communication System
We have received an order from Pizoor Communications Inc. for a special communication system. The sy ...
- POJ 1018 Communication System (动态规划)
We have received an order from Pizoor Communications Inc. for a special communication system. The sy ...
- POJ 1018 Communication System(树形DP)
Description We have received an order from Pizoor Communications Inc. for a special communication sy ...
- poj 1018 Communication System (枚举)
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22380 Accepted: ...
随机推荐
- Linux----mktemp命令的用法
命令说明: mktemp命令用于临时文件和临时目录.它的主要特点就是可以做到每次执行mktemp时产生文件和目录都不重名: 这个特性就保证了多个session执行同一脚本都是安全的. 命令用法: 格式 ...
- J2SE知识点摘记(十三)
1. 字节流 InputStream(输入字节流)是一个定义了java流式字节流输入模式的抽象类.该类的所有方法在出错时都会引发一个IOExcepiton异常. Void close() ...
- Oracle EBS-SQL (SYS-3):sys_人员用户名对应关系查询.sql
select fu.user_name 用户名, fu.description 描述, (select ppf.FULL_NAME from per_peop ...
- 2016 Multi-University Training Contest 7 总结
第七场多校的排名稍微有了一点回升,然而也并不太乐观. 开场欣君秒出了02题的公式,磊哥开始打表验证,发现可行,一A. 我觉得06题有些思路,开始写,但是发现复杂度优化不下去,于是弃疗. 磊哥做了10题 ...
- IOS深入学习(3)之Control Object
1 前言 今天我们来简单的学习一下IOS中用户点击屏幕后的事件处理,其中主要介绍一下Control Object,内容如下. 2 详述 Control是处于当用户用某种方式操作进行发送消息给另一个界面 ...
- C++_bool
1 0 #include <iostream> using namespace std; void main() { && || || - && ; std ...
- BeanUtils\DBUtils
BeanUtil: 需要导入 beanutil包和logging日志包 用于给对象属性赋值. setProperty与copyProperty区别: 这个问题搁置,还不会. 将map数据拷贝到对象中, ...
- iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard
本系列文章中,我们将一起认识.了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的时间.场景下做出最佳的选择,提升开发效率,增强程序的 ...
- HTML之学习笔记(四)格式化标签和特殊字符
html常用的格式化标签使用如下 <html> <head> <title></title> </head> <body > & ...
- 编码神器 Sublime Text 包管理工具及扩展大全
Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...