zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practice 1053 住房空置率 (20分)

    1.题目

    在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:

    • 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;

    • 若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。

    现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。

    输入格式:

    输入第一行给出正整数 N(≤1000),为居民区住房总套数;正实数 e,即低电量阈值;正整数 D,即观察期阈值。随后 N 行,每行按以下格式给出一套住房的用电量数据:

    K E​1​​ E​2​​ ... E​K​​

    其中 K 为观察的天数,E​i​​ 为第 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%
    

    (样例解释:第2、3户为“可能空置”,第4户为“空置”,其他户不是空置。)

    2.代码

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    using namespace std;
    double list[10001];
    int main()
    {
    	int n, d;
    	int probably = 0, definately = 0;
    	double e;
    	cin >> n >> e >> d;
    	int k, count = 0;
    	for (int i = 0; i<n; i++)
    	{
    		cin >> k;
    		count = 0;
    		memset(list, 0, sizeof(list));
    		for (int j = 0; j<k; j++)
    		{
    			cin >> list[j];
    			if (list[j]<e)count++;
    		}
    		if (k>d&&count * 2>k)definately++;
    		else if (k <= d&&count * 2>k)probably++;
    	}
    
    	printf("%.1f%% ", (double)probably / n * 100);
    	printf("%.1f%%", (double)definately / n * 100);
    }
  • 相关阅读:
    ora29861:域索引标记为loading/failed/unusable(转载)
    总遇到些莫名奇妙的问题,很不爽!
    dul 10恢复oracle lob数据方法(转载)
    C#用GDAL/OGR库创建与写Shape文件(转载)
    缺陷跟踪系统Mantis之安装篇(转载)
    Oracle10g闪回恢复区详细解析(转载)
    五大最受欢迎的BUG管理系统(转载)
    使用dul恢复数据(转载)
    DUL使用(转载)
    gdul 1.0.2 使用
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/12788938.html
Copyright © 2011-2022 走看看