P7075 儒略日
由于题目太长就不放这里了。
就是这道题让我考试时自闭了。
题解
首先把时间抽分段,公元前[4713,1]一段,公元后[1,1582)一段,[1582,1583),[1583,1600],(1600, ∞ \infty ∞]。
儒略历就4年一段,格里高利历就400年一段。
然后就是许多细节,注意加一减一。
问候出题人
#include<cstdio>
#define int long long
using namespace std;
int D[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};
void read(int &x){
int f=1;x=0;char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') {
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
x*=f;
}
void p(int year,int day,int flag){
int month=1;
if(day==0)