/*如果要一个物体的多种属性,最好用结构体,不要用二维数组或者多维数组。用多维数组进行关键字排序很不稳定 */
/*给每个设备的所有价格排序,每个设备选取恰好比已知带宽大的价格(这个时候的比例最大)  循环每个设备就得到所有价格综合 然后得到该带宽下的B/P
比较所有带宽的B/P 选取最大的就是所求的*/
#include <stdlib.h>
#include <stdio.h>
#define true 1
#define false 0
typedef struct
{ int b, p;
}SYS;
SYS sys[100][100];
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[100], bc;int b[10000];/*记录每种带宽*/ double max,temp;scanf("%d",&t);while(t--){scanf("%d",&n);bc = 0;for( i = 0; i < n; i++){scanf("%d",&m[i]);for( j = 0; 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 = 0;for( k = 0; k < bc; k++)/*循环每个带宽 */{sum = 0;could = true;for(i = 0; i < n; i++)/*每个设备 */{for(j = 0; 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 0;
}
/*
1
3
2 120 80 155 40
3 100 25 150 35 80 25
2 100 100 120 110
*/

转载于:https://www.cnblogs.com/woshijishu3/p/3621367.html

zoj 1409 Communication System相关推荐

  1. TargetVue: Visual Analysis of Anomalous User Behaviors in Online Communication System

    论文传送门 视频 作者 IBM T.J. Watson 研究中心 Nan Cao Conglei Shi Sabrina Lin Jie Lu Ching-Yung Lin 匹兹堡大学 Yu-Ru L ...

  2. POJ 1018 Communication System

    WA 的分析 1. solve_dp 返回的是 double 不是 int 浪费了非常久的时间 2. 做动规, 当状态转移方程比较复杂时, 举例子能够帮助初始化和写出状态转移方程 总结 1. 这里 d ...

  3. poj1018 Communication System (有道翻译完全拯救不了)

    译文: 问题描述 我们刚刚收到了来自PCI的一份订单 该系统由几个设备组成.对于每一个设备,我们可以自由选择由哪些制造商制造.相同的设备,不同的制造商都有不同的带宽和价格. B表示能达到的最小带宽之和 ...

  4. poj 1018 Communication System

    首先做这个题是极其难受的,第一次去做dp的题,万事开头难,虽然以前也接触过dp,但是都极力躲避着用其他算法解决,现在专门练这部分,倒觉得,你拍什么,什么就会比想象中难很多,没办法,一点一点练吧! 题意 ...

  5. MATLAB Communication System(4)通信系统的信源与信道一

    1.信源产生函数 1.1产生误比特图样:randerr 对于所有的语法,randerr对out的每一行都进行独立处理. out = randerr(m) 生成一个m乘m的二进制矩阵,其中每一行在随机位 ...

  6. 神牛笔记:吉林大学ACM总结(fennec)

    其实在北京比赛完的时候,我就想写了,不过还是早了点,直到上海比赛结束,大家的心中都不是太好受.郭老师有句话:你们这样做也是对的,不成功就成仁.让我的心也能安慰了不少. 我是从大一下学期开始接触ACM的 ...

  7. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  8. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  9. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  10. ZOJ 题目分类,学校的一个巨巨做的。

     DP: 1011      NTA                    简单题 1013      Great Equipment        简单题 1024      Calendar ...

最新文章

  1. Windows Server入门系列之十六 端口、连接与端口扫描
  2. php smtp验证,php通过smtp验证登陆
  3. python文件编译_编译Python文件
  4. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
  5. Lyft Level 5 Challenge 2018 - Elimination Round题解【待补】
  6. 实时取色器(RGB)
  7. 翻译: 顶级人工智能会议 CVPR NeurIPS AAAI 等
  8. 高级驾驶辅助系统各子系统一览
  9. 解决[Vue warn]: Unknown custom element: <ag> - did you register the component correctly? For recursive
  10. 个人财务流水账系统c语言,微易个人财务收支管理系统的教程
  11. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究串口通信(DMA)
  12. 中国工程师成功扩容苹果 MacBook M1
  13. “应用程序无法启动,因为应用程序的并行配置不正确”问题的解决
  14. 订单管理系统审批----未整理
  15. I-SOON CTF
  16. kubernetes node DiskPressure 压力
  17. 2020FME博客大赛——解放大脑 经纬度坐标自动重投影至常用投影坐标系
  18. 信息系统项目管理师论文范例5:成本管理
  19. Spring JTA多数据源事务管理详细教程
  20. RT1052 ENET ENET_SendFrame调用 未发送帧

热门文章

  1. 几校联考——day1题解
  2. android:windowSoftInputMode属性;界面关闭后软键盘不隐藏的解决方法;
  3. 51NOD 1181 质数中的质数(质数筛法)
  4. Git服务器-Gogs搭建
  5. Python覆盖率分析工具_Coverage
  6. CSS学习笔记(二)选择器
  7. 学车日记(4)--小路考Pass!
  8. 在任意目录导入自定义库
  9. redis 实战面试
  10. Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能