前言
明明就是一片题解
P1178 到天宫做客
题目描述
有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是 4000 4000 4000 年。天上一天也是 24 24 24 小时,每小时 60 60 60 分,每分 60 60 60 秒。
输入格式
第一行是一个非负整数 N N N,表示 4000 4000 4000 年中必须呆在人间的天数。
以下共 N N N 行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。
输出格式
一个非负整数,即在天上的时间(四舍五入精确到 1 1 1 秒)。
输入输出样例 #1
输入 #1
2
3 8
12 2
输出 #1
63266
说明/提示
样例解释(2023.9.29 新增)
4000 4000 4000 年是闰年,共有 366 366 366 天,其中二月份有 29 29 29 天。
最长连续空闲时间是从
3
3
3 月
9
9
9 日至
12
12
12 月
1
1
1 日一共
268
268
268 天。对应着天上的
86400
×
268
÷
366
=
63265.57
≈
63266
86400\times 268 \div 366=63265.57\approx 63266
86400×268÷366=63265.57≈63266 秒。
题目传送门
AC代码
#include<bits/stdc++.h>
using namespace std;
int f[12],a[100000];
int n,sum;
int x,y;
double k;
int main(){
f[1]=0;
f[2]=31;
f[3]=60;
f[4]=91;
f[5]=121;
f[6]=152;
f[7]=182;
f[8]=213;
f[9]=244;
f[10]=274;
f[11]=305;
f[12]=335;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>y;
a[i]+=f[x];
a[i]+=y;
}
sort(a+1,a+1+n);
a[n+1]=367;
for(int i=1;i<=n+1;i++){
sum=max(a[i]-a[i-1]-1,sum);
}
k=(sum*24*360*10*1.0/366)+0.5;
sum=k;
cout<<sum;
}
955

被折叠的 条评论
为什么被折叠?



