首页 > 其他分享 >1053 住房空置率——20分

1053 住房空置率——20分

时间:2022-08-13 11:04:06浏览次数:55  
标签:空置 1053 空置率 0.1 0.5 ++ 住房 int 20

在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:
在观察期内,若存在超过一半的日子用电量低于某给定的阈值e,则该住房为“可能空置”;
若观察期超过某给定阈值D天,且满足上一个条件,则该住房为“空置”。
现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。

输入格式

输入第一行给出正整数N(<=1000),为居民区住房总套数;正实数e,即低电量阈值;正整数D,即观察期阈值。随后N行,每行按以下格式给出一套住房的用电量数据:
K E1 E2 … EK
其中K为观察的天数,Ei为第i天的用电量。

输出格式

在一行中输出“可能空置”的比率和“空置”比率的百分比值,其间以一个空格分隔,保留小数点后1位。

输入样例

5 0.5 10
6 0.3 0.4 0.5 0.2 0.8 0.6
10 0.0 0.1 0.2 0.3 0.0 0.8 0.6 0.7 0.0 0.5
5 0.4 0.3 0.5 0.1 0.7
11 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
11 2 2 2 1 1 0.1 1 0.1 0.1 0.1 0.1

输出样例

40.0% 20.0%

| 代码长度限制 | 时间限制 | 内存限制 |
| 16KB | 400ms | 64MB |

思路:
按照题目要求分别计算每户的数量,然后算出所占比例,注意百分号输出要用%%

代码:

#include<bits/stdtr1c++.h>
using namespace std;
int main() {
	int N, D;
	double e;
	cin >> N >> e >> D;
	int sum1 = 0, sum2 = 0;
	for (int i = 0; i < N; i++) {
		int m, cnt = 0;
		double t;
		cin >> m;
		for (int j = 0; j < m; j++) {
			cin >> t;
			if (t < e) cnt++;
		}
		if (m <= D && cnt > m / 2) sum1++;
		else if (m > D && cnt > m / 2) sum2++;
	}
	double sum3 = sum1 * 1.0, sum4 = sum2 * 1.0, num = N * 1.0;
	printf("%.1f%% %.1f%%", sum3 / num * 100, sum4 / num * 100);
	return 0;
}

标签:空置,1053,空置率,0.1,0.5,++,住房,int,20
From: https://www.cnblogs.com/Fare-well/p/16582310.html

相关文章