蓝桥杯每日一题2023.11.8

题目描述

题目分析

对于输入的abc我们可以以a为年也可以以c为年,将abc,cab,cba这三种情况进行判断合法性即可,注意需要排序去重,所以考虑使用set

此处为纯模拟的写法,但使用循环代码会更加简洁。

方法一:

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
set<string> st;
string s[N];
int cnt;
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_ren(int x)
{
	if((x % 4 == 0 && x % 100 != 0)||(x % 400 == 0))return true;
	return false;
}
int main()
{
	int a, b, c;
	scanf("%d/%d/%d",&a, &b, &c);
	//以a为年 //abc
	if(a <= 59)
	{
		//abc
		if(b <= 12 && b > 0)
		{
			int x = 2000 + a;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(c <= m[b] && c > 0)
			{
				cnt ++;
				s[cnt] = "20";
				if(a < 10)s[cnt] += "0";
				s[cnt] += (to_string(a) + "-" );
				if(b < 10)s[cnt] += "0";
				s[cnt] += (to_string (b) + "-");
				if(c < 10)s[cnt] +="0";
				s[cnt] += to_string(c);
				st.insert(s[cnt]);
			}
		}
	}
 	else if(a > 59)
	{
		//abc
		if(b <= 12 && b > 0)
		{
			int x = 1900 + a;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(c <= m[b] && c > 0)
			{
				cnt ++;
				s[cnt] = "19";
				if(a < 10)s[cnt] += "0";
				s[cnt] += to_string(a) + "-" ;
				if(b < 10)s[cnt] += "0";
				s[cnt] += to_string (b) + "-";
				if(c < 10)s[cnt] +="0";
				s[cnt] += to_string(c);
				st.insert(s[cnt]);
			}
		
		}
	}
	//以c为年 //cab, cba 
	if(c <= 59)
	{
		//cab
		if(a <= 12 && a > 0)
		{
			int x = 2000 + c;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(b <= m[a] && b > 0)
			{
				s[++ cnt] = "20";
				if(c < 10)s[cnt] += "0";
				s[cnt] += to_string(c) + "-" ;
				if(a < 10)s[cnt] += "0";
				s[cnt] += to_string (a) + "-";
				if(b < 10)s[cnt] +="0";
				s[cnt] += to_string(b);
				st.insert(s[cnt]);
			}
		
		}
		//cba
		if(b <= 12 && b > 0)
		{
			int x = 2000 + c;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(a <= m[b] && a > 0)
			{
				cnt ++;
				s[cnt] = "20";
				if(c < 10)s[cnt] += "0";
				s[cnt] += to_string(c) + "-" ;
				if(b < 10)s[cnt] += "0";
				s[cnt] += to_string (b) + "-"; 
				if(a < 10)s[cnt] +="0";
				s[cnt] += to_string(a);
				st.insert(s[cnt]);
			}	
		}
	}
	else if(c > 59)
	{
		//cab
		if(a <= 12 && a > 0)
		{
			int x = 1900 + c;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(b <= m[a] && b > 0)
			{
				cnt ++;
				s[cnt] = "19";
				if(c < 10)s[cnt] += "0";
				s[cnt] += to_string(c) + "-" ;
				if(a < 10)s[cnt] += "0";
				s[cnt] += to_string (a) + "-";
				if(b < 10)s[cnt] +="0";
				s[cnt] += to_string(b);
				st.insert(s[cnt]);
			}
			
		}
		//cba
		if(b <= 12 && b > 0)
		{
			int x = 1900 + c;
			if(is_ren(x))m[2] = 29;
			else m[2] = 28;
			if(a <= m[b] && a > 0)
			{
				cnt ++;
				s[cnt] = "20";
				if(c < 10)s[cnt] += "0";
				s[cnt] += to_string(c) + "-" ;
				if(b < 10)s[cnt] += "0";
				s[cnt] += to_string (b) + "-";
				if(a < 10)s[cnt] +="0";
				s[cnt] += to_string(a);
				st.insert(s[cnt]);
			}
		}
	}
	for(auto i : st)
	{
		cout << i << '\n';
	}
	return 0;
}

方法二:

#include<bits/stdc++.h>
using namespace std;
int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool check_valid(int year, int month, int day)
{
	if(month == 0 || month > 12)return false;
	if(day == 0)return false;
	if(month != 2)
	{
		if(day > days[month])return false;
	}
	else
	{
		int leap = year % 100 && year % 4 == 0 || year % 400 == 0;
		if(day > 28 + leap)return false;
	}
	return true;
}
int main()
{
	int a, b, c;
	scanf("%d/%d/%d", &a, &b, &c);
	for(int date = 19600101; date <= 20591231; date ++)
	{
		int year = date / 10000, month = date % 10000 / 100, day = date % 100;
		if(check_valid(year, month, day))
		{
			if(year % 100 == a && month == b && day == c ||
			   month == a && day == b && year % 100 == c ||
			   day == a && month == b && year % 100 == c)
			printf("%d-%02d-%02d\n", year, month, day);
		}
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于java web的计算机office课程平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

无人机航迹规划:七种智能优化算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划--提供MATLAB代码

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

阿里云Intel Xeon Platinum可扩展处理器性能说明

阿里云Intel Xeon Platinum可扩展处理器性能如何&#xff1f;目前云服务器ECS经济型e实例采用该款CPU型号&#xff0c;正好阿里云服务器网购买了一台2核CPU、2G内存、3M固定带宽、40G ESSD Entry云盘&#xff0c;一年优惠价99元&#xff0c;第二年续费不涨价依旧是99元一年&…

Idea安装使用教程~

在本文中&#xff0c;我们将提供关于如何安装 IntelliJ IDEA 的详细步骤。如果您是初学者或只是想尝试一下 IDEA&#xff0c;我们建议您下载 Community 版。如果您需要更多高级功能&#xff0c;可以选择 Ultimate 版。 步骤一&#xff1a;下载 IntelliJ IDEA 首先&#xff0c;…

使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别

目标网站&#xff1a;https://www.txrjy.com/forum.php 一、进入网页&#xff0c;右键“检查” 二、输入用户名和密码&#xff0c;点击“登录”&#xff0c;点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项&#xff0c;找到URL 四、相关代码&#xff1a; …

渗透必备:Proxifier玩转代理

目录 0# 概述 1# Proxifier介绍 2# 操作过程 2.1 配置代理服务器 2.2 配置代理规则 3# Proxifier玩转代理 3.0 配置说明 3.1 通过Proxifier进行内网渗透 3.2 通过Proxifier将VM虚拟机代理 3.3 通过Proxifier进行小程序抓包 3.4 补充 4# 总结 0# 概述 在日常的渗透过…

Pytorch模型使用与修改、保存与加载

模型的使用及修改、保存与加载 以图像处理中torchvision为例&#xff0c;PyTorch通过torchvision.models模块提供了更多的预训练模型. 在图像分类当中&#xff0c;包括许多模型 import torchvision import warnings import torch warnings.filterwarnings("ignore&quo…

C++ 代码实例:并查集简单创建工具

文章目录 前言代码仓库代码说明main.cppMakefile 结果总结参考资料作者的话 前言 C 代码实例&#xff1a;并查集简单创建工具。 代码仓库 yezhening/Programming-examples: 编程实例 (github.com)Programming-examples: 编程实例 (gitee.com) 代码 说明 简单地创建并查集注…

软件测试|PO设计模式在 UI 自动化中的实践

PO的思想最早是2013年由IT大佬Martin Flower提出的&#xff1a;https://martinfowler.com/bliki/PageObject.html 没错&#xff0c;就是他 — 没错&#xff0c;就是他 — 在他的文章里有这样一张经典样图,图片中展示了测试代码中直接操作HTML元素和使用PO模式将page对象封装成…

“锡安主义”贝尔福宣言希伯来抵抗运动犹太启蒙改革运动奋锐党闪米特人雅利安人

目录 “锡安主义” 贝尔福宣言 希伯来抵抗运动 犹太启蒙改革运动 奋锐党 闪米特人 雅利安人 “锡安主义” “锡安主义”是一种政治和民族运动&#xff0c;旨在支持并促进犹太人建立自己的国家并在历史上与宗教上的祖先之地——巴勒斯坦地区建立一个独立的国家。这一运动…

C++11常用特性

目录 1、{}初始化 2、auto 3、decltype 4、nullptr 5、范围for 6、STL容器 7、右值引用 ①左值引用和右值引用 ②移动构造 ③移动赋值 ④万能引用与完美转发 8、新的类功能 9、可变模版参数 10、lambda表达式 捕捉列表的使用 [val]&#xff1a;传值捕捉 [&…

GPTZero:论文打假神器

记住这张脸他是全美学生的公敌。 别的学生在AI大浪潮间翻云覆雨&#xff0c;有的用GPT代写作业&#xff0c;有的用GPT代工论文&#xff0c;大家都忙的不亦乐乎。 正在大家都在欢呼雀跃跟作业拜拜时&#xff0c;就是这个小伙&#xff0c;普林斯顿大学的华裔小天才Edward Tian…

C++/Qt 小知识记录4

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识4 mysql导入*.sql文件提示连接超时等问题mysql局域网内访问VLC低版本的匹配QLineEdit的正则表达式限制获取windows下已加载磁盘盘符QLabel自动换行QElapsedTimer间隔计时自定义Class作为Key需要重载…

Spark SQL

Spark SQL 本文来自 B站 黑马程序员 - Spark教程 &#xff1a;原地址 第一章 SparkSql快速入门 1.1 什么是SparkSql Spark Sql is Spark’s module for working with strutured data. Spark Sql是Spark的模块&#xff0c;用于处理海量结构化数据 限量&#xff1a;结构化数据…

Tomcat的类加载器

详情可以参考&#xff1a;https://tomcat.apache.org/tomcat-10.1-doc/class-loader-howto.html 简要说明 Tomcat安装了多种类加载器&#xff0c;以便容器的不同部分、容器中的应用访问能够不同的类和资源。 在Java环境中&#xff0c;类加载器被组织为父-子树的形式。通常情况…

文件包含漏洞培训

CTF介绍 MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等。CRYPTO(Cryptography)类型,即密码学,题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。PWN类型,PWN在黑客俚语中代表着攻破、取得权限…

技术分享 | app自动化测试(Android)-- 属性获取与断言

断言是 UI 自动化测试的三要素之一&#xff0c;是 UI 自动化不可或缺的部分。在使用定位器定位到元素后&#xff0c;通过脚本进行业务操作的交互&#xff0c;想要验证交互过程中的正确性就需要用到断言。 常规的UI自动化断言 分析正确的输出结果&#xff0c;常规的断言一般包…

Qt实现动态桌面小精灵(含源码)

目录 一、设计思路 二、部分源码演示 三、源码地址 🌈write in front🌈 🧸大家好,我是三雷科技.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由三雷科技原创 CSDN首发🐒 如需转载还请通知⚠️ 📝个人主页:三雷科技🧸—CSDN博客 🎁欢…

Leetcode刷题详解——字母大小写全排列

1. 题目链接&#xff1a;784. 字母大小写全排列 2. 题目描述&#xff1a; 给定一个字符串 s &#xff0c;通过将字符串 s 中的每个字母转变大小写&#xff0c;我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1&#xff1a; 输入&…

渲染管线详解

光栅化的渲染管线一般分为三大阶段&#xff1a;应用程序阶段->几何阶段->光栅化阶段 也可以四大阶段&#xff1a; 应用程序阶段->几何阶段->光栅化阶段->逐片元操作阶段 更详细的流程如下&#xff1a; Vertex Specification&#xff08;顶点规范化&#xff09…