说句闲话:研究珂学最好的方法是
  • 板块灌水区
  • 楼主wpx_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/13 17:15
  • 上次更新2024/11/13 20:25:38
查看原帖
说句闲话:研究珂学最好的方法是
1279276
wpx_楼主2024/11/13 17:15

P2010

#include<bits/stdc++.h>
using namespace std;
long long a,b,sum;
long long days[] = {-1ll, 31ll, 28ll, 31ll, 30ll, 31ll, 30ll, 31ll, 31ll, 30ll, 31ll, 30ll, 31ll};
long long make_hw(string s){//前4位生成全8位
	for(long long i=3ll;i>=0ll;i--){
		s+=s[i];
	}
	return atoll(s.c_str());
}
bool is_tov(long long y,long long m,long long d){
	if (!m || m > 12ll) return false;
	if (!d) return false;
	if (m != 2ll)
	{
		if (d > days[m]) return false;
	}
	else
	{
		bool leap = (y % 400ll == 0ll) || (y % 4ll == 0ll && y % 100ll != 0ll);
		if (d > 28 + (leap? 1ll:0ll)) return false;
	}	
	return 1;
}
int main() {
	cin>>a>>b;
	if(make_hw(to_string(a/10000ll))>a)sum++;
	for(int i=a/10000ll+1ll;i<=b/10000ll-1ll;i++){
		long long the_hw=make_hw(to_string(i));
		if(is_tov(the_hw/10000ll,the_hw%10000ll/100ll,the_hw%100ll)){
			sum++;
		}
	}
	if((make_hw(to_string(b/10000))<b)&&(a/10000ll!=b/10000ll))sum++;
	cout<<sum<<'\n';
	return 0;
}

悬关求调

2024/11/13 17:15
加载中...