2020浙江省ACM省赛A题

2020 ACM浙江省省赛A 题其他题待补

很简单先打表,然后输出就可注意第一天如果是包含202则需特殊处理

#include<iostream>
using namespace std;
int year1,m1,d1,year2,m2,d2;
long long a[10000][13][32];
int yf(int x,int y){
        if(y==2){
                if((x%4==0 && x%100!=0)||(x%400==0)){
                        return 29;
                }
                else{
                        return 28;
                }
        }
        else if(y==1||y==3||y==5||y==7||y==8||y==10||y==12){
                return 31;
        }
        else{
                return 30;
        }
}
bool pd(int x){
        while(x!=0){
                if(x%1000==202){
                        return true;
                }
                x=x/10;
        }
        return false;
}
int main(){
        long long  ans=0;
        for(int i=2000;i<10000;i++){
                for(int j=1;j<=12;j++){
                        for(int k=1;k<=yf(i,j);k++){
                                int s=i*10000+j*100+k;
                                if(pd(s)){
                                        ans++;
                                }
                                a[i][j][k]=ans;
                        }
                }   
        }
	int t;
	cin>>t;
	while(t--){
                cin>>year1>>m1>>d1>>year2>>m2>>d2;
                if(pd(year1*10000+m1*100+d1)){
                        cout<<a[year2][m2][d2]-a[year1][m1][d1]+1<<endl;
                }
                else{
                        cout<<a[year2][m2][d2]-a[year1][m1][d1]<<endl;
                }
	}
}

第一次参加省赛收获颇丰

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页