• PAT 乙级 1053 住房空置率 (20)


    1053. 住房空置率 (20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

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

    • 在观察期内,若存在超过一半的日子用电量低于某给定的阈值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%
    

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

    思路:因为每个用户观察的天数不确定,所以用柔性数组来做比较节省内存

     1 // 1053.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<iomanip>
     7 
     8 using namespace std;
     9 
    10 struct user
    11 {
    12     int days;//柔性数组大小
    13     double ele[];//柔性数组
    14 };
    15 
    16 int main()
    17 {
    18     int N,D,may_empty=0,Empty=0,day;
    19     double e;
    20     user u;
    21 
    22     cin >> N >> e >> D;
    23 
    24     for (int i = 0; i < N; ++i)
    25     {
    26         cin >> u.days;
    27 
    28         double *p = new double[u.days];//为结构体的柔性数组分配空间
    29 
    30         day = 0;
    31 
    32         for (int j = 0; j < u.days; ++j)
    33         {
    34             cin >> p[j];
    35 
    36             if (p[j] < e)
    37                 ++day;
    38         }
    39 
    40         if (2 * day > u.days)//条件1
    41         {
    42             ++may_empty;
    43 
    44             if (D < u.days)//条件2
    45                 ++Empty;
    46         }
    47 
    48 
    49         delete[] p;
    50     }
    51 
    52     cout << setiosflags(ios::fixed) << setprecision(1) << 100.0 * (may_empty - Empty) / N << "% "
    53         << setiosflags(ios::fixed)<< setprecision(1) << 100.0 * Empty / N << "%" << endl;
    54 
    55     return 0;
    56 }
  • 相关阅读:
    【原】CSS实现背景透明,文字不透明,兼容所有浏览器
    【原】我是超级收银员,你敢来挑战吗
    【原】iphone6来了,我该做点什么(兼容iphone6的方法)
    【原】移动web页面兼容处理的思考
    【原】移动web动画设计的一点心得——css3实现跑步
    【原】移动web页面使用字体的思考
    【原】HTML5 新增的结构元素——能用并不代表对了
    更为简单的Ctrl+S自动刷新浏览器工具-LinrF5
    博客3周年
    【原】移动web页面支持弹性滚动的3个方案
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7238794.html
Copyright © 2020-2023  润新知