2 条题解

  • 1
    @ 2024-12-18 20:43:05

    高~~~煜城同学实在是太棒了,洛谷的题解上找到了这个精妙的公式,秒了这道题。 以吾之拙见,可以记录每年开始的星期,每年累加,秒掉这道题。然后就写了一个小时……

    #include <bits/stdc++.h>
    using namespace std;
    int n,s=0,tot[7]={0},y[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int main()
    {
    	//每年增1,闰年增2 
    	cin>>n;
    	for (int i=1900;i<n+1900;i++){
    		bool flag=((i%4==0 && i%100!=0) || i%400==0);
    		int cnt=12;
    		for (int j=1;j<=12;j++){
    			tot[(cnt+s)%7]++;
    			cnt+=/*请补全代码*/;
    			if (flag && j==2){
    				cnt++;
    			}
    		}
    		s+=1+flag;
    	}
    	cout<<tot[5]<<' '<<tot[6]<<' '<<tot[0]<<' '<<tot[1]<<' '<<tot[2]<<' '<<tot[3]<<' '<<tot[4];
    }
    

    信息

    ID
    5
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    51
    已通过
    13
    上传者