首页 > 其他分享 >P8716 [蓝桥杯 2020 省 AB2] 回文日期

P8716 [蓝桥杯 2020 省 AB2] 回文日期

时间:2024-03-24 20:33:59浏览次数:15  
标签:return P8716 int 31 month 蓝桥 AB2 include 回文

思路解析

本题与洛谷的 P 2010 [ N O I P 2016 普及组 ] 回文日期 P2010 [NOIP2016 普及组] 回文日期 P2010[NOIP2016普及组]回文日期相类似,通过这道题可以学会的是,我们可以构造回文数,然后判断该回文日期是否符合实际情况。

  1. 构造回文数
  2. 判断回文日期是否符合真实情况
  3. 判断回文日期是否是 A B A B B A B A ABABBABA ABABBABA类型
  4. 符合则输出答案

P2010 [NOIP2016 普及组] 回文日期

#include<stdio.h>
#include<queue>
#include<vector>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<stack>
#include<limits.h>
#include<string.h>
#include<math.h>
#include<map>
#define int long long
using namespace std;
int data1;
int data2;
int ans;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int check(int data){
	int year=data/10000;
	int month=data%10000/100;
	int day=data%100;
	if(month<=0||day<=0||month>=13){
		return 0;
	}
	if(month!=2){
		if(day>months[month]){
			return 0;
		}
	}
	if(month==2){
		if((year%4==0&&year%100!=0)||year%400==0){
			if(day>29){
				return 0;
			}
		}
		else{
			if(day>28){
				return 0;
			}
		}
	}
	return 1;
}
signed main(){	
	scanf("%lld %lld",&data1,&data2);
	for(int i=1000;i<10000;i++){
		int l=i,r=i;
		for(int j=1;j<=4;j++){
			l=l*10+r%10;
			r/=10;
		}
		if(l>=data1&&l<=data2&&check(l)){
			ans++;
		}
	}
	printf("%lld\n",ans);
	return 0;
}

[蓝桥杯 2020 省 AB2] 回文日期

#include<stdio.h>
#include<queue>
#include<vector>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<stack>
#include<limits.h>
#include<string.h>
#include<math.h>
#include<map>
#define int long long
using namespace std;
int data1;
int data2;
int ans;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int flag;//标记第一个回文日期是否输出 
int check1(int data){
	int year=data/10000;
	int month=data%10000/100;
	int day=data%100;
	if(month<=0||day<=0||month>=13){
		return 0;
	}
	if(month!=2){
		if(day>months[month]){
			return 0;
		}
	}
	if(month==2){
		if((year%4==0&&year%100!=0)||year%400==0){
			if(day>29){
				return 0;
			}
		}
		else{
			if(day>28){
				return 0;
			}
		}
	}
	return 1;
}
int check2(int data){
	int year=data/10000;
	int month=data%10000/100;
	int day=data%100;
	if(month==day){
		return 1;
	}
	return 0;
}
signed main(){	
	scanf("%lld",&data1);
	for(int i=1000;i<10000;i++){
		int l=i,r=i;
		for(int j=1;j<=4;j++){
			l=l*10+r%10;
			r/=10;
		}
		if(l>data1&&check1(l)){
			if(flag==0){
				flag=1;
				printf("%lld\n",l);
			} 
			if(check2(l)){
				printf("%lld\n",l);
				break;
			}
			
		}
	}
	return 0;
}```

标签:return,P8716,int,31,month,蓝桥,AB2,include,回文
From: https://blog.csdn.net/2301_80129631/article/details/136994179

相关文章

  • 2024 蓝桥打卡Day18
    洛谷刷题P8682[蓝桥杯2019省B]等差数列题目[P8682[蓝桥杯2019省B]等差数列](https://www.luogu.com.cn/problem/P8682)题解P8682[蓝桥杯2019省B]等差数列题目P8682[蓝桥杯2019省B]等差数列题解importjava.util.Arrays;importjava.util.S......
  • 第十二届蓝桥杯省赛C&C++ 研究生组
    十二届省赛题第十二届蓝桥杯省赛C&C++研究生组-卡片第十二届蓝桥杯省赛C&C++研究生组-直线第十二届蓝桥杯省赛C&C++研究生组-货物摆放第十二届蓝桥杯省赛C&C++研究生组-路径第十二届蓝桥杯省赛C&C++研究生组-时间显示第十二届蓝桥杯省赛C&C++研究生组-砝码称重......
  • [暴力题解系列]2023年蓝桥杯-整数删除(30分)
    这题暴力最多30分,但是30分也是分,做暴力的人不能贪心,拿到分就是赚了。​ 这题核心烦人点在于他数据分层断崖,就只有前3个点能做到稳过。用的思路就是链表,但不是用指针存的,而是用数组下标为标记存的,只是我觉得因为这样好写一些。链表方便修改左右连接位置,所以越到后面就越能省下查询......
  • 【算法双周赛】蓝桥杯【小白赛】
    坤星球【算法赛】问题描述坤星球是一颗十万光年之外的星球,相比于地球的时间流逝它的时间流逝更加缓慢,坤星球1年等于地球2.5年。现在问你,2024坤年等于地球多少年?注意:答案输出阿拉伯数字,不能为浮点数。输入格式本题为填空题,无需输入即可作答。输出格式输出一个数......
  • 蓝桥杯2017年第八届真题-分巧克力(二分算法)
    题目描述儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是HixWi的方格组成的长方形。为了公平起见,小明需要从这N块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1.形状是正方形,边长是整数2.大......
  • 蓝桥杯—蓝肽子序列—动态规划
    蓝肽子序列dp[i][j]表示L1,L2前i,j个字段有多少个公共子序列,对于一个Xi和Yj(L1,L2的前i,j个字段形成序列.如果xi=yj(第i,j字段),则dp[i][j]=dp[i-1][j-1]+1(前面的公共字段加一).否则,dp[i][j]=max(dp[i-1][j],dp[i][j-1]),考虑前后情况的最大值。最后输......
  • [暴力题解系列] 2023年蓝桥杯-冶炼金属
    世界上存在很难的题,但不存在暴力偷不到分的题​ 这题的暴力思路比你想的更简单,我直接枚举v的数值不就行了?#include<iostream>#include<algorithm>usingnamespacestd;inta[10010],b[10010];intmain(){intn;scanf("%d",&n);for(inti=1;i<=n;i++)......
  • 【蓝桥杯·dp问题】砝码称重
    此题易联想到使用动态规划解决,dp[i][j]状态表示是否存在前i个砝码中选取重量为j的方案。砝码重量分三种情况:1.砝码本身的重量(即一个砝码就可以表示的重量)2.放在同侧3.放在异侧注意重量为0的情况不记作方案数。#include<cstdio>#include<cstring>#include<iostream......
  • [暴力题解系列]2023年蓝桥杯-子串简写
    ​ 大伙都说暴力是最低级的算法,啊那确实。但是好的暴力才是真正牛逼的骗分。咱就是说,暴力如何骗分呢?就是基于最暴力的算法一步步优化到能得更多分的暴力。子串简写这题,首先第一步就能想到一件事情:暴力枚举子串开头和末尾的位置,检查是否是符合题目要求的字符,如果是,并且长度大于......
  • 【蓝桥杯】(3.19矩形总面积)
    #include<iostream>#defineLLlonglongusingnamespacestd;intmain(){LLx1,y1,x2,y2,x3,y3,x4,y4;cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;LLs1,s2,s;s1=(x2-x1)*(y2-y1);s2=(x4-......