(5)细菌实验分组
来源:互联网 发布:reflower for mac 编辑:程序博客网 时间:2024/05/21 22:58
描述
有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。
细菌繁殖能力(繁殖率)的量化标准为一个小时内细菌数量增长的比例(繁殖率 = 一小时后细菌数量 / 原本细菌数量)。
两个亚种繁殖能力差异很大,这意味着对于任意两个同种细菌培养皿的繁殖率的测量值之间的差异要小于任意两个异种细菌培养皿繁殖率的测量值之间的差异。即:
输入
输入有多行,第一行为整数n(n≤100),表示有n个培养皿。
其余n行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。假设试验没有误差。
输出
输出有多行:
第一行输出A亚种培养皿的数量,其后每行输出A亚种培养皿的编号,按繁殖率升序排列。
然后一行输出B亚种培养皿的数量,其后每行输出B亚种培养皿的编号,也按繁殖率升序排列。
提示
亚种内部,细菌繁殖能力差异远远小于亚种之间细菌繁殖能力的差异。
也就是说,亚种间任何两组细菌的繁殖率之差都比亚种内部两组细菌的繁殖率之差大。
//有个前提就是,所有的A亚种是连着的,所有的B亚种也是连着的#include<iostream>using namespace std;int main(){ int n;//n为细菌的数量 //id记录细菌的编号, //rate记录细菌的繁殖率,第i个细菌对应id[i]和rate[i] int id[100]; double rate[100]; cin >> n; for (int i = 0; i < n; i++){ int initial, final; cin >> id[i] >> initial >> final; rate[i] = (double)final / initial; } //对整个细菌繁殖率排序(选择排序法,先选出最大的,然后放在第一位,然后再选第二大的,放在第二位……) for (int i = 0; i < n; i++){ for (int j = 0; j < n - i - 1; j++){ if (rate[j + 1] > rate[j]){ //编号和繁殖率是对应的,要一起交换 int tmpId = id[j]; id[j] = id[j + 1]; id[j + 1] = tmpId; double tmpRate = rate[j]; rate[j] = rate[j + 1]; rate[j + 1] = tmpRate; } } } //记录最大的差 double maxDiff = 0; //记录最大的下标 int maxDiffIndex = 0; for (int i = 0; i < n - 1; i++){ double diff = rate[i] - rate[i + 1]; if (maxDiff < diff){ maxDiff = diff; maxDiffIndex = i; } } //输出繁殖率较大的那组细菌 cout << maxDiffIndex + 1 << endl; for (int i = maxDiffIndex; i >= 0; i--){ cout << id[i] << endl; } //输出繁殖率较小的那组细菌 cout << n - maxDiffIndex - 1 << endl; for (int i = n - 1; i > maxDiffIndex + 1; i--){ cout << id[i] << endl; } return 0;}
阅读全文
0 0
- (5)细菌实验分组
- 细菌实验分组
- 程序设计进阶 编程题#5:细菌分组实验
- 编程题#5:细菌实验分组 C语言
- 细菌实验分组(C程序设计进阶第2周)
- 细菌实验分组(C程序设计进阶 第2周)
- 实验对象随机分组程序
- Java正则表达式分组实验
- 模拟细菌(病毒)传播(java作业)
- 细菌觅食算法(Bacteria Foraging Algorithm,BFA)
- iOS独立游戏Super Germ(细菌英雄)
- 细菌(disease)解题报告 - 搜索与回朔
- 细菌繁殖
- 手机细菌
- 细菌繁殖
- 细菌繁殖
- 细菌增殖
- 超级细菌
- Linux ——CRC校验
- BigDecimal的加、减、乘、除
- Spring MVC前台使用html页面作为视图,配置静态资源后Controller控制器不起作用的解决办法
- 进程间8种通信方式详解一
- msm8909+android5.1分区及烧录的镜像文件介绍
- (5)细菌实验分组
- 机器视觉知识第一弹~_~
- Retrofit2完全教程
- #python练习#leetcode 406. Queue Reconstruction by Height【贪心】
- Sass与less的区别
- 获取当前日期和时间并格式输出
- centos 安装php扩展redis
- hihoCoder 156周 岛屿
- Idea+StringBoot+cxf