zoukankan      html  css  js  c++  java
  • 洛谷 P1178 到天宫做客

    题目描述

    有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。

    输入输出格式

    输入格式:

     

    输入文件的第一行是一个非负整数 N,表示4000年中必须呆在人间的天数,以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。

     

    输出格式:

     

    输出文件仅有一行包含一个非负整数,即在天上的时间(四舍五入精确到秒)。

     

    输入输出样例

    输入样例#1: 复制
    2
    3 8
    12 2
    输出样例#1: 复制
    63266
    思路:模拟
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,ans,num[13];
    struct nond{
        int month,day;
    }v[366];
    int tim(nond a,nond b){
        if(a.month==b.month)    return b.day-a.day-1;
        int bns=num[a.month]-a.day;
        for(int i=a.month+1;i<b.month;i++)    bns+=num[i];
        bns+=b.day-1;
        return bns;
    }
    int cmp(nond a,nond b){
        if(a.month==b.month)    return a.day<b.day;
        return a.month<b.month; 
    }
    int main(){
        scanf("%d",&n);
        num[1]=num[3]=num[5]=num[7]=num[8]=num[10]=num[12]=31;
        num[4]=num[6]=num[9]=num[11]=30;
        num[2]=29;
        for(int i=1;i<=n;i++)
            scanf("%d%d",&v[i].month,&v[i].day);
        v[n+1].month=1;v[n+1].day=0;
        v[n+2].month=12;v[n+2].day=32;
        sort(v+1,v+3+n,cmp);
        for(int i=1;i<=n+1;i++)
            ans=max(ans,tim(v[i],v[i+1]));
        ans=ans*24*60*60;
        if(ans%366<183)    printf("%d",ans/366);
        else printf("%d",ans/366+1);
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    【python+selenium】selenium grid(分布式)
    【python】导入自定义模块
    Maven的配置以及IDEA导入本地Maven
    java历史概述
    JVM 内存调优 与 实际案例
    ConcurrentHashMap实现线程安全的原理
    Request.UrlReferrer详解
    等比例缩放生成缩略图
    JavaEE的ajax入门
    javaee三层架构案例--简单学生管理系统
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7860343.html
Copyright © 2011-2022 走看看