您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

蓝桥每日真题之完全日期

MangataTS 发布时间:2022-01-21 17:12:45 ,浏览量:0

题目来源

2021年蓝桥杯国赛C题

题目链接:http://acm.mangata.ltd/p/P1504

考点

暴力枚举,常识or手数

视频讲解

视频连接:https://www.bilibili.com/video/BV15S4y1o78D/

思路 思路一

因为从2001年1月1日到2021年12月31日也就二十年,我们直接打开日历手动计数就好啦,肥肠的方便!

思路二

我们可以通过计算机辅助我们计算,我们开三重循环,分别模拟yearmonthday,然后把每一天都拿来计算就好啦,然后要注意的是闰年的2月是29天,不过好在没有这一天是一个完全平方数。

代码
#include
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000009
#define endl "\n"
#define PII pair

int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};

ll ksm(ll a,ll b) {
	ll ans = 1;
	for(;b;b>>=1LL) {
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
	}
	return ans;
}

ll lowbit(ll x){return -x & x;}

const int N = 2e6+10;
//----------------自定义部分----------------

int month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数

int f(int x){
	int ans = 0;
	while(x) {
		ans += x % 10;
		x /= 10;
	}
	return ans;
}

bool check(int a,int b,int c){
	int k = f(a) + f(b) + f(c);
	int p = sqrt(k);//默认向下取整的
	return p * p == k;
}

int main()
{
	
	int ans = 0;
	for(int year = 2001; year             
关注
打赏
1665836431
查看更多评论
0.1526s