news 2026/6/4 15:00:44

hh蓝桥杯每日一题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 23:13:33

TypeScript 的本质并非类型,而是信任

我有一支技术全面、经验丰富的小型团队&#xff0c;专注高效交付中等规模外包项目&#xff0c;有需要外包项目的可以联系我静态类型悄悄修好的&#xff0c;不只是语法错误&#xff0c;而是你们的精神状态。老实说&#xff0c;我第一次听到 TypeScript 的时候&#xff0c;脑子里…

作者头像 李华
网站建设 2026/5/30 11:29:46

WE Learn智能学习助手全面指南:三步解锁高效学习新体验

WE Learn智能学习助手全面指南&#xff1a;三步解锁高效学习新体验 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/5/29 22:28:54

WE Learn网课助手终极指南:3步开启智能学习新时代

WE Learn网课助手终极指南&#xff1a;3步开启智能学习新时代 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.com/gh…

作者头像 李华
网站建设 2026/5/30 23:13:31

差异制胜:针对App Store与Google Play的精细化ASO策略

在移动应用竞争日益激烈的今天&#xff0c;掌握Google Play与App Store的流量分发逻辑已成为开发者生存与增长的核心能力。两大平台虽有不同的生态系统和推荐机制&#xff0c;却遵循着一些共通的曝光法则。一、理解双平台的算法逻辑差异App Store更加强调“编辑选择”和“精品推…

作者头像 李华