hh蓝桥杯每日一题

12.日期问题 - 蓝桥云课

这个题目主要考察的是日期问题

闰年的判断还

日期的去重和排大小(可以用map实现,但我用的vector+pair)

#include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; bool isleapyear(int y) { if(y%400==0)return true; if(y%100==0)return false; return y%4==0; } bool check(int yy,int month,int day,int &fullyear) { if(month<1||month>12)return false; if(yy>=40)fullyear=1900+yy; else fullyear=2000+yy; if(fullyear<1960||fullyear>2059) { return false; } if(day<1)return false; if(month==2) { if(isleapyear(fullyear)) { return day<=29; } else return day<=28; } if(month==4||month==6||month==9||month==11)return month<=30; return day<=31; } int datetoint(int y,int m,int d) { return y*10000+m*100+d; } int main() { string s; cin>>s; int a = (s[0] - '0') * 10 + (s[1] - '0'); int b = (s[3] - '0') * 10 + (s[4] - '0'); int c = (s[6] - '0') * 10 + (s[7] - '0'); vector<pair<int,string>> dates; int year1; if(check(a,b,c,year1)) { int dateint=datetoint(year1,b,c); char buf[20]; sprintf(buf, "%04d-%02d-%02d", year1, b, c); dates.push_back({dateint, buf}); } int year2; if(check(c,b,a,year2)) { int dateint=datetoint(year2,b,a); char buf[20]; sprintf(buf, "%04d-%02d-%02d", year2, b, a); dates.push_back({dateint, buf}); } int year3; if(check(c,a,b,year3)) { int dateint=datetoint(year3,a,b); char buf[20]; sprintf(buf, "%04d-%02d-%02d", year3, a, b); dates.push_back({dateint, buf}); } sort(dates.begin(), dates.end()); // 去重并输出 string lastDate = ""; for (const auto& p : dates) { if (p.second != lastDate) { cout << p.second << endl; lastDate = p.second; } } return 0; }

14.油漆面积 - 蓝桥云课

求这个的面积可以转化成标记这个图上的位置是否被访问过来求

这样就很简单了,准备一个n*n的数组和一个标记是否访问过的标签

#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N = 10010; bool marked[N][N]; // 标记数组,记录每个点是否被覆盖 int main() { int n; cin >> n; // 初始化标记数组 memset(marked, 0, sizeof(marked)); int total = 0; for(int i = 0; i < n; i++) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; // 确保x1<=x2, y1<=y2 if(x1 > x2) swap(x1, x2); if(y1 > y2) swap(y1, y2); // 标记这个矩形覆盖的区域 for(int x = x1; x < x2; x++) { for(int y = y1; y < y2; y++) { if(!marked[x][y]) { marked[x][y] = true; total++; } } } } cout << total << endl; return 0; }

17.发现环 - 蓝桥云课

这个有两种做法

利用拓扑排序

或者是并查集和dfs

#include<iostream> #include<cstring> #include<algorithm> #include<vector> #include<queue> using namespace std; const int N = 100010; vector<int> g[N]; // 邻接表 int degree[N]; // 每个节点的度 bool inCycle[N]; // 是否在环上 int main() { int n; cin >> n; // 初始化 for(int i = 0; i <= n; i++) { g[i].clear(); degree[i] = 0; inCycle[i] = true; // 初始假设所有节点都在环上 } // 读入边 for(int i = 0; i < n; i++) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); degree[a]++; degree[b]++; } // 拓扑排序:删除所有不在环上的节点(度为1的节点) queue<int> q; for(int i = 1; i <= n; i++) { if(degree[i] == 1) { q.push(i); inCycle[i] = false; } } while(!q.empty()) { int u = q.front(); q.pop(); for(int v : g[u]) { degree[v]--; if(degree[v] == 1 && inCycle[v]) { q.push(v); inCycle[v] = false; } } } // 输出环上的节点 bool first = true; for(int i = 1; i <= n; i++) { if(inCycle[i]) { if(!first) cout << " "; cout << i; first = false; } } cout << endl; return 0; }

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

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

相关文章

CES 2026黄仁勋演讲:计算的炼金术(PPT版)

扫描下载文档详情页: https://www.didaidea.com/wenku/16321.html

⚡_延迟优化实战:从毫秒到微秒的性能突破[20260108165321]

作为一名专注于系统性能优化的工程师&#xff0c;我在过去十年中一直致力于降低Web应用的延迟。最近&#xff0c;我参与了一个对延迟要求极其严格的项目——金融交易系统。这个系统要求99.9%的请求延迟必须低于10ms&#xff0c;这个要求让我重新审视了Web框架在延迟优化方面的潜…

从“积雪深度”到“雪水当量”:寒区研究为何需要多维度的降雪数据?

在气候变化研究、寒区水文及水资源管理中&#xff0c;降雪远不止是银装素裹的风景。它是一座“固态水库”&#xff0c;其累积与消融过程深刻影响着区域水资源的时空分配、河流的春汛特征&#xff0c;乃至全球的能量平衡。然而&#xff0c;要精确量化这座水库的储量与动态&#…

信奥赛C++提高组csp-s之欧拉回路

信奥赛C提高组csp-s之欧拉回路 一、欧拉回路是什么及其作用 欧拉回路定义 欧拉回路&#xff1a;从一个顶点出发&#xff0c;经过图中每条边恰好一次&#xff0c;最终回到起点的路径欧拉路径&#xff1a;从一个顶点出发&#xff0c;经过图中每条边恰好一次&#xff0c;最终到达…

信奥赛C++提高组csp-s之欧拉回路(案例实践)

信奥赛C提高组csp-s之欧拉回路&#xff08;案例实践&#xff09; 欧拉路径 题目描述 求有向图字典序最小的欧拉路径。 输入格式 第一行两个整数 n,mn,mn,m 表示有向图的点数和边数。 接下来 mmm 行每行两个整数 u,vu,vu,v 表示存在一条 u→vu\to vu→v 的有向边。 输出格…

信奥赛C++提高组csp-s之拓扑排序详解

信奥赛C提高组csp-s之拓扑排序详解 一、拓扑排序基本概念 拓扑排序(Topological Sort)是对有向无环图(DAG)的一种线性排序&#xff0c;使得对于图中的每一条有向边(u, v)&#xff0c;u在排序中总是位于v的前面。 基本性质&#xff1a; 只有有向无环图(DAG)才有拓扑排序一个D…

[特殊字符]_高并发场景下的框架选择:从性能数据看技术决策[20260108170044]

作为一名经历过无数生产环境考验的资深工程师&#xff0c;我深知在高并发场景下选择合适的技术栈是多么重要。最近我参与了一个日活千万级的电商平台重构项目&#xff0c;这个项目让我重新思考了Web框架在高并发环境下的表现。今天我要分享的是基于真实生产数据的框架性能分析&…

SpringBoot+Vue ONLY在线商城系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着互联网技术的快速发展&#xff0c;电子商务已成为现代商业活动的重要组成部分&#xff0c;在线商城系统因其便捷性和高效性受到广泛关注。传统的线下购物模式受限于时间和空间&#xff0c;而在线商城能够突破这些限制&#xff0c;为用户提供24小时不间断的购物体验。同…

WebDriver——》常用的页面元素处理方式

import timeimport document as document from selenium import webdriver driver webdriver.Chrome() driver.get("https://www.baidu.com") time.sleep(2) driver.quit()#指定驱动 from selenium.webdriver.chrome.service import Service chrome_server Servic…

信奥赛C++提高组csp-s之拓扑排序(案例实践)

信奥赛C提高组csp-s之拓扑排序&#xff08;案例实践&#xff09; 杂务 (Job Processing) 问题描述 有n个杂务需要完成&#xff0c;某些杂务必须在另一些杂务完成之后才能开始。每个杂务都有完成所需的时间。求完成所有杂务所需的最短时间。 输入格式 第一行&#xff1a;整数…

前后端分离学科竞赛管理系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着信息技术的快速发展&#xff0c;学科竞赛管理系统的信息化和智能化需求日益增长。传统的学科竞赛管理模式依赖人工操作&#xff0c;效率低下且容易出错&#xff0c;难以满足大规模竞赛活动的需求。为了解决这一问题&#xff0c;设计并实现一个基于前后端分离架构的学科…

Java笔记9

目录 集合 面向对象进阶 继承【补充】 多态【补充】 static关键字 包 Final关键字 代码块 集合 集合和数组的区分&#xff1a; 数组&#xff1a;长度固定不变&#xff0c;存储类型&#xff1a;可以存储基本数据类型&#xff0c;也可以存储引用数据类型集合&#xff1…

UE5 C++(15):宏 UFUNCTION() 修饰成员函数,BlueprintCallable,Category,BlueprintPure 纯函数,

&#xff08;84&#xff09;宏 UFUNCTION() 把类的成员函数暴露给蓝图 &#xff1a;&#xff08;85&#xff09;pure 纯函数&#xff0c;无执行引脚 &#xff1a; 如图&#xff0c; 蓝图中也可以通过细节面板来定义纯函数 &#xff1a; 一言的解释 &#xff1a;&#xff08;86&…

拆解 Claude Code:Coding Agent 终于“能用”背后的架构真相

大家好&#xff0c;我是Tony Bai。 在过去两年里&#xff0c;我们见证了 AI Coding Agent的尴尬童年&#xff1a;从最初笨拙的 Copy-Paste&#xff0c;到 Cursor 的 VS Code Fork 革命&#xff0c;再到如今 Claude Code 这种 CLI Coding Agent的出现。 为什么以前的 Agent 总是…

认识can

本文对工作中can的一些总结can是一种网络协议&#xff0c;主要分can和canfd(高速can&#xff09;canfd速度快&#xff0c;当然成本也高。canfd更多应用与智驾等&#xff0c;can主要用于中控等根据需求决定使用。实战&#xff1a;linux 上位机发送canfd报文<CAN_ID>##<…

认识can

本文对工作中can的一些总结can是一种网络协议&#xff0c;主要分can和canfd(高速can&#xff09;canfd速度快&#xff0c;当然成本也高。canfd更多应用与智驾等&#xff0c;can主要用于中控等根据需求决定使用。实战&#xff1a;linux 上位机发送canfd报文<CAN_ID>##<…

【脉脉】AI创作者AMA知无不言:人机共生时代的创作觉醒

&#x1f3ac; 个人主页&#xff1a;艾莉丝努力练剑❄专栏传送门&#xff1a;《C语言》《数据结构与算法》《C/C干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法&#xff1a;从基础到进阶》《Python干货分享》⭐️为天地立心&#xff0c;为生民立命…

Go语言数据结构和算法(三十四)分治算法

分治算法是将一个巨大的输入分解成若干个小块.在每个小块上解决问题.然后将分段解决方案合并为全局解决方案.1.步骤:分解:将原始问题分解成一组子问题.解决子问题:递归的单独解决每个子问题.合并子问题:将子问题的解放在一起得到整个问题的解.2.应用:2.1快速排序:又称分区交互排…

go语言初认识

背景: python粗略算是懂后, 了解到近期热门的一种语言go。 在多进程等方面的确有很多优势&#xff0c;尤其在解析pcap等时&#xff0c;算力强大&#xff0c;运行时间直接少了一半以上&#xff0c;应用在后端也非常有优势。 本文记录go语言的学习和实战应用。 安装go : linux…

ai-agent 一个强大的辅助工具

随着ai的大热&#xff0c;如何更好的利用ai&#xff0c;而不单单作为知识的查询。如果它能帮我们设计测试用例&#xff0c;执行用例&#xff0c;并给出结果&#xff0c;甚至可以帮我们开发&#xff0c;是不是一个梦中情tool。 这不单单是幻想&#xff0c;目前不少大厂已经实现&…