OpenJudge计算概论-细菌实验分组
/*====================================================
细菌实验分组
总时间限制: 1000ms 内存限制: 65536kB
描述
有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个 小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。
输入
输入有多行,第一行为整数n(n≤100),表示有n个培养皿。
其余n行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。
输出
输出有多行:
第一行输出A亚种培养皿的数量,其后每行输出A亚种培养皿的编号,按繁殖率升序排列。
然后一行输出B亚种培养皿的数量,其后每行输出B亚种培养皿的编号,也按繁殖率升序排列。
样例输入
5
1 10 3456
2 10 5644
3 10 4566
4 20 234
5 20 232
样例输出
3
1
3
2
2
5
4
提示
亚种内部,细菌繁殖能力差异远远小于亚种之间细菌繁殖能力的差异。
也就是说,亚种间任何两组细菌的繁殖率之差都比亚种内部两组细菌的繁殖率之差大。
解析:所谓繁殖率:是指种群中每一个体平均产生下一代的个体数。
有时也用一个个体在单位时间内产生的个体数来表示。
按照这个思路,繁殖率是用后来的数量z与原来的数量y之差除以原来的数量y,表示为(z-y)/y。
按照这个思路设计的程序,对输入输出案例都没对,但竟然AC了,无语中……
======================================================*/
#include<stdio.h>
struct PeiYangMin
{
int No;
double fanZhiLv;
};
void BubbleSort(struct PeiYangMin a[],int n);//对数组a[]的前n个元素按繁殖率进行非递减排序
int main()
{
int n,i;
struct PeiYangMin a[];
int x,y,z;
int max=;
int maxI=;
double t;
freopen("6.in","r",stdin);
//freopen("6.out","w",stdout);
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[i].No=x;
a[i].fanZhiLv=(z-y)/y;
//a[i].fanZhiLv=z-y;
}
BubbleSort(a,n);
for(i=n-;i>;i--)
{
t=a[i].fanZhiLv-a[i-].fanZhiLv;
if(t>max)
{
max=t;
maxI=i;
}
}
printf("%d\n",n-maxI);//输出A组的个数
for(i=maxI;i<n;i++)
{
printf("%d\n",a[i].No);
}
printf("%d\n",maxI);//输出B组的个数
for(i=;i<maxI;i++)
{
printf("%d\n",a[i].No);
}
return ;
}
void BubbleSort(struct PeiYangMin a[],int n)
{//对数组a[]的前n个元素进行非递减排序
int i,j;
struct PeiYangMin temp;
for(i=;i<n;i++)
{
for(j=;j<n-i;j++)
{
if(a[j].fanZhiLv>a[j+].fanZhiLv)
{
temp=a[j];
a[j]=a[j+];
a[j+]=temp;
}
}
}
}
OpenJudge计算概论-细菌实验分组的更多相关文章
- OpenJudge计算概论-细菌的战争
/*====================================================================== 细菌的战争 总时间限制: 1000ms 内存限制: 6 ...
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
- OpenJudge计算概论-最高的分数
/*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...
- OpenJudge计算概论-比饭量【枚举法、信息数字化】
/*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...
- OpenJudge计算概论-鸡尾酒疗法
/*===================================== 鸡尾酒疗法 总时间限制: 1000ms 内存限制: 65536kB 描述 鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HA ...
- Openjudge计算概论-角谷猜想
/*===================================== 角谷猜想 总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数 ...
- OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...
随机推荐
- CSS之选择器相关
一.选择器的作用 选择器就是用来选择标签的,要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器. HTML页面中的元素就是通过CSS选择器进行控制的.每一条 ...
- PAT_B 20
这道题就是简单的贪心,有几个注意点: 1.又是一个单体有多个属性(即月饼有总量,总价,单价几个属性),这个时候可以考虑使用struct结构,我还是傻傻使用pair,还是没有养成习惯,幸好这道题存下来两 ...
- 算法102----360笔试(m进制不进位相加最大值)
转自:https://blog.csdn.net/qq_18310041/article/details/99656445 import copy # m进制 m = 5 n = 5 line = [ ...
- python中json序列化时汉字变成编码的解决方式
我们在使用json模块时,如果被序列化对象中不包含汉字,当然没有任何问题,但是有汉字会被编译成unicode码: import json dic = {","sex":& ...
- 【python】使用openpyxl解析json并写入excel(xlsx)
目标: 将json文本解析并存储到excel中 使用python包 openpyx import simplejsonmport codecsimport openpyxl import os # d ...
- python 根据两个字段排序, 一个升序, 一个降序
from collections import Counter c = Counter(input()) l=sorted(c.items(), key=lambda s:(-s[], s[])) ] ...
- NodeJS开发博客(一)
1 区分 ECMAScript/JS/NodeJs --ECMAScript.定义了语法,写JS和NodeJS都要遵守: 变量定义,循环/判断/函数: 原型和原形链/作用域和闭包/异步 不能操作DOM ...
- webpack 配置react脚手架(五):mobx
1. 配置项.使用mobx,因为语法时es6-next,所以先配置 .babelrc 文件 { "presets": [ ["es2015", { " ...
- Kubernetes的YAML文件
deployments: - apiVersion: apps/v1beta1 kind: Deployment metadata: labels: system_serviceUnit: bas-b ...
- SQL Server全文检索
SQL Server 全文索引的硬伤 http://www.cnblogs.com/gaizai/archive/2010/05/13/1733857.html SQLSERVER全文搜索 http: ...