zoukankan      html  css  js  c++  java
  • UVA 6475 Effective Infection Time

    You are estimating the threat level of quarantined zones that have been abandoned to the infection.
    One of the key variables in determining a zone’s threat level is the EIT (Effective Infection Time). This
    information is essential for planning strike dates to reclaim quarantined zones. The EIT is calculated
    according to the following rules:
    • The EIT is the result of a function of two dates: The infection date and the strike date.
    • All years are in A.Z. (After Zombie).
    • Every month counts for a fraction of an EIT after its last day has passed. This means the month
    of the strike date does not count for EIT.
    • The first calendar year of the infection is calculated as 1/2 EIT.
    ◦ If the end of the year is not reached, each month only counts for a fraction of the 1/2 EIT. If
    a zone was infected in January of the first year, then the 1/2 EIT is spread across 12 months
    ((1/2)/12 = ∼ 0.0417 EIT per month). If a zone was infected in March of the first year,
    then the 1/2 EIT is spread across 10 months ((1/2)/10 = 0.0500 EIT per month).
    ◦ If the end of the year is reached, the year counts as a full 1/2 EIT, regardless of the infection
    month. In other words, a zone infected in February of 15 A.Z. counts as only 1/2 (one-half)
    EIT after December 15 A.Z. A zone infected in December of the same year will also count
    as 1/2 EIT.
    • All following years are calculated as 1 EIT. Each calendar month, beginning with January, counts
    for 1/12 EIT (∼ 0.0833 EIT).
    • Every zone infected on the same month will have the same EIT for any given strike date. Therefore
    only the month and year are given.
    The number and order of months in a calendar year remains the same as the modern
    Gregorian calendar.
    Input
    The first line will be an integer N, where 1 ≤ N ≤ 50 giving the number of zones. For each zone, a
    pair of lines of will be provided:
    • The first line contains the infection date. The second contains the strike date.
    • The first integer of a date represents the month, M (1 ≤ M ≤ 12), and the second integer
    represents the year, Y (0000 ≤ Y ≤ 0030). The year will always have 4 digits.

    • The strike date will never precede the infection date.


    Output
    Output the EIT for each zone on its own line. The EIT must be rounded to the fourth digit after the

    decimal point. The ones-digit must always be printed even if it is a zero.

    Sample Input
    2
    2 0009
    11 0012
    3 0010
    10 0010
    Sample Output
    3.3333
    0.3500


    水题一个。题意真心难懂,读了不下1个小时。

    题意:考虑第一年,若第一年过完了按0.5算。没过完就按0.5/x*y算,随后的每年的每月按1.0/12算。

    计算出有多少月就能够了。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<limits.h>
    typedef long long LL;
    using namespace std;
    double m1,y1;
    double m2,y2;
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            double ans;
            cin>>m1>>y1>>m2>>y2;
            if(y1==y2)
                ans=0.5/(12-m1+1)*(m2-m1);
            else
                ans=(y2-y1-1)+1.0/12*(m2-1)+0.5;
            printf("%.4lf
    ",ans);
        }
        return 0;
    }


  • 相关阅读:
    性能监控(5)–JAVA下的jstat命令
    内存分析工具-MAT(Memory Analyzer Tool)
    性能监控(4)–linux下的pidstat命令
    性能监控(3)–linux下的iostat命令
    性能监控(2)–linux下的vmstat命令
    性能监控(1)--linux下的top命令
    了解java虚拟机—在TALB上分配对象(10)
    了解java虚拟机—G1回收器(9)
    js 长按鼠标左键实现溢出内容左右滚动滚动
    html标签设置contenteditable时,去除粘贴文本自带样式
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5329648.html
Copyright © 2011-2022 走看看