蓝桥杯:日期统计

文章目录

  • 问题描述
  • 解法一递归
  • 解法二:暴力破解

问题描述

在这里插入图片描述

首先我们要了解什么是子序列,就是一个序列之中可以忽略元素但是不能改变顺序之后获得的序列就叫做子序列。
如"123"就是"11234"的子序列而不是"11324"的子序列

解法一递归

#include <iostream>
#include<vector>
#include<algorithm>
#include<list>
#include<map>
#include<set>
#include<queue>
#include<string>
bool vis[202400000];
int pp[100] = {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3
};
using namespace std;
int ans = 0;
bool checkd(int date) {if (vis[date])return false;vis[date] = 1;int date1 = date / 100%100;int date2 = date % 100;if (date1 > 12 || date1 < 1)return false;if (date1 == 1 || date1 == 3 || date1 == 5 || date1 == 7 || date1 == 8 || date1 == 10 || date1 == 12) {if (date2 <= 31 && date2 >= 1)return true;}else if (date1 == 2) {if (date2 <= 28&& date2 >= 1)return true;}else {if (date2 <= 30 && date2 >= 1)return true;}return false;
}
void dfs(int pos, int k, int date) {if (k == 8) {if (checkd(date)) {ans++;};return;}if (pos > 99) {return;}if (pp[pos] == 2 && k == 0 || pp[pos] == 0 && k == 1 || pp[pos] == 2 && k == 2 || pp[pos] == 3 && k == 3 ||pp[pos] <= 1 && k == 4 || pp[pos] <= 9 && k == 5 || pp[pos] <= 3 && k == 6 || pp[pos] <= 9 && k == 7){dfs(pos + 1, k + 1, date * 10 + pp[pos]);}dfs(pos + 1, k, date);
}
int main()
{dfs(0, 0, 0);cout << ans;return 0;
}

首先我们创建函数dfs(),pos代表数组位置,k代表位数,date表示当前的日期,其中date * 10 + pp[pos]是保存当前日期,我们迭代到位数k==8 return但是要检查date是否合法

因为date有可能出现13,14之类的写一个checkd函数如果查到合法ans++,bool vis是检查日期是否重复的函数。 完成这一位搜索之后dfs(pos + 1, k, date);,直到pos>99 return

在这里插入图片描述

解法二:暴力破解

解法二直接穷举2023所有的日期,看序列中有没有,这样就不要判断重复,也不用判断是否合法,直接从第一个位置到最后一个位置,输出ans就可以,代码也会少很多


#include <bits/stdc++.h>
#include<string>
#include<vector> 
using namespace std;int main()
{int day[] = { 1,31,28,31,30,31,30,31,31,30,31,30,31 };int ans = 0;int arr[100] = {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3};for (int i = 1; i <= 12; i++) {for (int j = 1; j <= day[i]; j++) {int date[] = { 1,2,0,2,3,i / 10,i % 10,j / 10,j % 10 };int	id = 1;for (int c = 0; c < 100; c++){if (arr[c] == date[id]) {id++;}if (id > 8) {ans++;break;}}}}cout << ans;return 0;
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 C/C++ 组历届真题合集速刷(一)

一、1.单词分析 - 蓝桥云课 &#xff08;模拟、枚举&#xff09;算法代码&#xff1a; #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;unordered_map<char,int> mp;for(auto ch:s){mp[ch];}char result_charz;int max_count0;fo…

重塑知识的引擎:人工智能如何改变知识的生产与传播

一、引言&#xff1a;知识的边界正在被人工智能重构 千百年来&#xff0c;人类对于“知识”的获取方式一直遵循着某种路径依赖&#xff1a;感知现实 → 归纳总结 → 文字表达 → 教育传承 → 学术沉淀。这一过程复杂而缓慢&#xff0c;需要经过代际的努力才能实现知识的积累与…

list的底层:

我们之前讲解了list&#xff0c;今天我们来看一下list的底层&#xff1a; list底层是一个双向带头循环的链表&#xff0c;之前我们学习数据结构的时候&#xff0c;我们就学过。 迭代器的封装&#xff1a; 我们看这个图片&#xff0c;我们的链表的指针可以达到链表的迭代器能力…

遵循IEC62304YY/T0664:确保医疗器械软件生命周期合规性

一、EC 62304与YY/T 0664的核心定位与关系 IEC 62304&#xff08;IEC 62304&#xff09;是国际通用的医疗器械软件生命周期管理标准&#xff0c;适用于所有包含软件的医疗器械&#xff08;如嵌入式软件、独立软件、移动应用等&#xff09;&#xff0c;其核心目标是确保软件的安…

【next函数python】`next()`函数

在Python中&#xff0c;next()函数结合生成器表达式用于高效地查找序列中第一个符合条件的元素。以下是如何理解和编写类似代码的步骤&#xff1a; 1. 生成器表达式 生成器表达式&#xff08;如 (e for e in energy3 if e ! 0)&#xff09;是一种惰性计算的迭代结构。它不会一…

[创业之路-364]:穿透表象:企业投资的深层逻辑与误区规避

前言&#xff1a; 透过现象看本质 企业一生与人生相似 看企业如同看人 三岁看大&#xff0c;七岁看老 三十年河东&#xff0c;三十年河西 企业也有品行、文化、气质、性格、赚钱、生命周期与赚钱曲线 投资公司的目的是未来赚钱&#xff0c;赚未来赚钱。投资创业中的企业主要看…

【C++】Stack Queue 仿函数

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲STL中的stack和queue。因为前面我们已经有了string、vector和list的学习基础&#xff0c;所以这篇文章主要关注一些stack和queue的细节问题&#xff0c;以及了解一下deque&#xff08;缝合怪&#xff09;和priority_queue &am…

[实战] 天线阵列波束成形原理详解与仿真实战(完整代码)

天线阵列波束成形原理详解与仿真实战 1. 引言 在无线通信、雷达和声学系统中&#xff0c;波束成形&#xff08;Beamforming&#xff09;是一种通过调整天线阵列中各个阵元的信号相位和幅度&#xff0c;将电磁波能量集中在特定方向的技术。其核心目标是通过空间滤波增强目标方…

深圳漫云科技户外公园实景儿童剧本杀小程序:开启亲子互动新纪元

在亲子娱乐需求日益增长的当下&#xff0c;深圳漫云科技推出的户外公园实景儿童剧本杀小程序&#xff0c;凭借其创新玩法与丰富功能&#xff0c;为亲子家庭带来全新体验。该小程序融合户外探险、角色扮演与逻辑推理&#xff0c;不仅满足孩子好奇心&#xff0c;更提升其思维能力…

HOW - 如何测试 React 代码

目录 一、使用 React 测试库&#xff1a;testing-library/react二、使用测试演练场&#xff1a;testing-playground.com三、使用 Cypress 或 Playwright 进行端到端测试四、使用 MSW 在测试中模拟网络请求 一、使用 React 测试库&#xff1a;testing-library/react testing-li…

COBOL语言的网络安全

COBOL语言与网络安全&#xff1a;传统语言的新挑战 引言 COBOL&#xff08;Common Business-Oriented Language&#xff09;是一种早期编程语言&#xff0c;最初于1959年被开发出来&#xff0c;主要用于商业、金融和行政系统的处理。尽管年代久远&#xff0c;COBOL在大型机系…

通过世界排名第一的免费开源ERP,构建富有弹性的智能供应链

概述 现行供应链模式的结构性弱点凸显了对整个行业进行重塑的必要性。正确策略和支持可以帮助您重塑供应链&#xff0c;降低成本&#xff0c;实现业务转型。开源智造&#xff08;OSCG&#xff09;所推出的Odoo免费开源ERP解决方案&#xff0c;将供应链转化为具有快速响应能力的…

Android 开发中compileSdkVersion 和 targetSdkVersion

在 Android 开发中&#xff0c;compileSdkVersion 和 targetSdkVersion 是 build.gradle 文件中的两个关键配置&#xff0c;它们分别控制应用的编译行为和运行时兼容性。以下是它们的详细区别和用途&#xff1a; 1. compileSdkVersion&#xff08;编译版本&#xff09; 作用&a…

Qt QComboBox 下拉复选多选

Qt 中&#xff0c;QComboBox 默认只支持单选&#xff0c;但实际使用过程中&#xff0c;我们经常会碰到需要多选的情况&#xff0c;但是通过一些直接或者曲折的方法还是可以实现的。 1、通过 QListWidget 间接实现 这种方式是网上搜索最多的一种方式&#xff0c;也是相对来说比…

Selenium自动化:玩转浏览器,搞定动态页面爬取

嘿&#xff0c;各位爬虫爱好者和自动化达人们&#xff01;是不是经常遇到这种情况&#xff1a;信心满满地写好爬虫&#xff0c;requests一把梭&#xff0c;结果抓下来的HTML里&#xff0c;想要的数据空空如也&#xff1f;定睛一看&#xff0c;原来数据是靠JavaScript动态加载出…

天梯赛 L2-023 图着色问题

使用vector<vector<int>> g(N)去存储边&#xff0c;然后每次判断每个节点的邻节点是不是相同的颜色&#xff0c;需要注意的是不同的颜色一定需要为K种&#xff0c;不能多也不能少。 #include<bits/stdc.h> using namespace std; int main(){int n,m,k;cin&g…

在ubuntu24上装ubuntu22

实验室上有一台只装了ubuntu24的电脑&#xff0c;但是项目要求在22上进行 搞两个ubuntu系统&#xff01; 步骤一&#xff1a;制作22的启动盘 步骤二&#xff1a;进入bios安装界面 步骤三&#xff1a;选择try or install ubuntu 步骤四&#xff1a;选择try ubuntu 步骤五&…

【PVR Review】《Review of Deep Learning Methods for Palm Vein Recognition》

[1]谭振林,刘子良,黄蔼权,等.掌静脉识别的深度学习方法综述[J].计算机工程与应用,2024,60(06):55-67. 文章目录 1、Background and Motivation2、数据采集3、掌脉图像预处理3.1、ROI提取算法3.2、图像滤波与增强 4、掌脉识别算法4.1、基于深度学习的方法4.2、其他方法 5、融合识…

【CSP】202403-1词频统计

文章目录 算法思路1. 数据结构选择2. 输入处理3. 统计出现的文章数4. 输出结果 代码示例代码优化 样例输入 4 3 5 1 2 3 2 1 1 1 3 2 2 2 2 3 2样例输出 2 3 3 6 2 2算法思路 1. 数据结构选择 vector<int>&#xff1a;用于存储每篇文章的单词列表&#xff08;可能包含…

Docker基础1

本篇文章我将从系统的知识体系讲解docker的由来和在linux中的安装下载 随后的文章会介绍下载镜像、启动新容器、登录新容器 如需转载&#xff0c;标记出处 docker的出现就是为了节省资本和服务器资源 当企业需要一个新的应用程序时&#xff0c;需要为它买台全新的服务器。这样…