问题 C: 到天宫做客

时间限制: 1 Sec  内存限制: 128 MB
提交: 100  解决: 26
[提交][状态][讨论版]

题目描述

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

输入

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

输出

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

样例输入

2
3 8
12 2

样例输出

63266

解题思路:今天是难忘的一天,体会到了一句话,不到最后关头绝不能放弃!最后一分钟AC通过!
  落掉一种情况,就是两个相邻的日期是在一个月内的时候,我的算法会计算错误。
  感觉自己想出来的方法经常是相当冗余且容易出错,还是自己功力不够啊。
  选取算法的时候应选取简单地不容易出错的才行。
  能一块讨论就没必要分情况讨论,要注意合并相同的一些情况。
代码:
#include <iostream>
#include <cstdio>
#include <algorithm> using namespace std; typedef struct node{
int month;
int day;
};
node a[]; int cmp(node a,node b){
return (a.month<b.month) || (a.month==b.month&&a.day<b.day);
} int main()
{
int n;
int maxx=;
int daycount[]={};
int monthday[]={,,,,,,,,,,,,};
scanf("%d",&n);
if(n==){
printf("86400\n");
return ;
}
if(n==){
printf("0\n");
return ;
}
for(int i=;i<n;i++){
scanf("%d %d",&a[i].month,&a[i].day);
}
sort(a,a+n,cmp);
for(int i=;i<n+;i++){
if(i==){
for(int j=;j<a[i].month;j++){
daycount[i]+=monthday[j];
}
daycount[i]+=a[i].day-;
}
if(i==n){
for(int j=a[i-].month+;j<=;j++){
daycount[i]+=monthday[j];
}
daycount[i]+=(monthday[a[i-].month]-a[i-].day);
}
if(i!=&&i!=n&&a[i].month!=a[i-].month){
for(int j=a[i-].month+;j<a[i].month;j++){
daycount[i]+=monthday[j];
}
daycount[i]+=(monthday[a[i-].month]-a[i-].day);
daycount[i]+=a[i].day-; }
if(i!=&&i!=n&&a[i].month==a[i-].month){//这种情况做的时候被落掉!
daycount[i]+=a[i].day-a[i-].day-;
}
maxx=max(daycount[i],maxx);
}
double second=maxx**1.0/;
printf("%.0lf\n",maxx**1.0/); return ;
}
 

到天宫做客-最后一分钟AC!!!的更多相关文章

  1. 洛谷 P1178 到天宫做客

    P1178 到天宫做客 题目描述 有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒.我犹豫了.天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我 ...

  2. [LeetCode] Pow(x, n)

    Implement pow(x, n). 有史以来做过最简单的一题,大概用5分钟ac,我采用fast exponential,这个在sicp的第一章就有描述.思想是:如果n是偶数的话,那么m^n = ...

  3. 数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0

     题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php Mean: 略. analyse: 刚开始想了半天都没想出来,数据这么大,难道是有什么 ...

  4. ACRush 楼天成回忆录

    楼教主回忆录: 利用假期空闲之时,将这几年 GCJ , ACM , TopCoder 参加的一些重要比赛作个回顾.首先是 GCJ2006 的回忆. Google Code Jam 2006 一波三折: ...

  5. NOIP 2003解题报告

    第一题(神经网络): 题目大意,给出一些点,每个点都有2个值,c和u,给出一些有向边,权值为w.入度为0的点的c已知,其它点的c未知,每个入度不为0的点node的c等于sum(c[k]*w[k][no ...

  6. 搜索——[HAOI2012]添加号

    题目:[HAOI2012]添加号 描述: [题目描述] 有一个由数字1,2,…9组成的数字串(长度不超过8),问如何将M(M<=5)个加号"+"插入到这个数字串中,使所形成的 ...

  7. 楼天城楼教主的acm心路历程(作为励志用)

    楼主个人博客:小杰博客 利用假期空暇之时,将这几年GCJ,ACM,TopCoder 參加的一些重要比赛作个 回顾.昨天是GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前,我刚刚 ...

  8. 2016 Multi-University Training Contest 4 总结

    第四场多校队伍的发挥还是相当不错的. 我倒着看题,发觉最后一题树状数组可过,于是跟队友说,便开始写,十分钟AC. 欣君翻译01题给磊哥,发现是KMP裸题,但是发现模板太旧,改改后过了. 11题是一道毒 ...

  9. Noip2010提高组总结

    将Noip2010重新做了一遍,第一遍做下来居然只有290分,比当年浙江的一等线低了20分,因为各种坏习惯丢掉了许多分数,Noip时需要特别注意! T1:机器翻译 第一题直接暴力,内存足够所以不用循环 ...

随机推荐

  1. 【POJ 3020】Antenna Placement(二分图匹配)

    相当于用1*2的板覆盖给定的h*w的格子里的点,求最少的板.可以把格子相邻的分成两个集合,如下图,0为一个集合,1的为一个,也就是(行数+列数)为奇数的是一个集合,为偶数的为另一个集合.1010101 ...

  2. myEclipse中新建的项目导入到Eclipse之后项目出现一个红色的叉叉

    1.在eclipse中打开Problems,然后看看报哪些错,

  3. Bzoj2440 完全平方数

    Time Limit: 10000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Description 小 X 自幼就很 ...

  4. 关于bash的shellshock漏洞

    这一漏洞的描述如下: Shellshock (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CV ...

  5. appium按钮定位,去掉弹出框

    #coding=utf-8 这个一定要加上,不然脚本中注释中都不能有中文 ''' Created on 2015年7月2日 @author: liujuan ''' import sys reload ...

  6. 深入浅出Redis01安装

    一 什么是Redis? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是一个高性能的Key-Va ...

  7. 如何把项目托管到GitHub

    第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,注意它们并不等同. gitHub是全球最 ...

  8. msmms (二) sms与mms 简述!

    mms 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . MMS是英文缩写,它可以是Membership Management System的缩写,中文译名为会员管理系统.也可以是M ...

  9. 深入浅出 - Android系统移植与平台开发(五)- 编译Android源码(转)

    2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机.Linux内核.编译系统.框架代码.Android定制C库.测试套件.系统应用程序等部分组成,在编译Android源 ...

  10. c# params

    每个C#函数都允许有个参数带params关键字,在调用的时候可以不给他传值,也可以给他传值,还可以给他传多个值,例子如下: using System; using System.Collections ...