第十五屆藍橋杯 2024 C/C++組 下一次相遇

目錄

題目:

題目描述:

題目鏈接:

思路:

自己的思路詳解:

更好的思路詳解:

代碼:

自己的思路代碼詳解:

更好的思路代碼詳解:


題目:

題目描述:

題目鏈接:

P10575 [藍橋杯 2024 國 A] 下一次相遇 - 洛谷

下一次相遇 - 藍橋云課

思路:

自己的思路詳解:

我一開始自己的思路就是直接暴力遍歷,關于日期問題的遍歷其實多寫幾次就會發現格式都差不多(后續有時間我會總結藍橋杯中的日期問題)。日期問題的遍歷格式差不多就是全局變量打表定義每月的天數,定義函數判斷閏年,三層for循環遍歷年月日,其中按照題意對特殊的開始時間與結束時間判斷一下即可。這里定義cnt來記錄從2024年6月1日過了多少天到今天,cnt%7==0表示恰好過了n周。

這個思路比較暴力,寫代碼的話也還是比較長的,但是日期問題的遍歷格式寫熟練了還是挺好想的。

更好的思路詳解:

因為這題是填空題,其實只要把邏輯思考明白就能想出答案。我的代碼注釋已經很詳細地把邏輯推導寫出來了,跟著代碼注釋一步步推導即可

代碼:

自己的思路代碼詳解:

#include<bits/stdc++.h> //這題是填空題,答案是2030,這個代碼是我自己思考的遍歷方式,做法比較暴力 
using namespace std;    //在看完題解之后,發現其實有更簡短的代碼,以及更好的思考方式 int cnt; //cnt表示的是從2024年6月1日過了多少天 
int daysofmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //每月的天數,索引為0時空放個0 bool isleaqyear(int y)  //定義函數判斷閏年 
{if(y%400==0||(y%4==0&&y%100!=0)){return true;}else{return false;}
}int main()
{for(int year=2024;year<=2099;year++) //題目沒有明確遍歷結束的范圍,我們自己先設一個比較大的年 {int monthmin=1;if(year==2024) //題目是從2024年6月1號開始 {monthmin=6;}for(int month=monthmin;month<=12;month++){int daymax=daysofmonth[month];if(isleaqyear(year)==true&&month==2){daymax=29;}for(int day=1;day<=daymax;day++){if(month==6&&day==1&&cnt%7==0) //cnt%7==0表示恰好過了n周,即表示某年6月1號是周六 {if(year!=2024){cout<<year<<endl;return 0;}}cnt++;}}}
}

更好的思路代碼詳解:

//這題是填空題,其實甚至不需要寫代碼,把邏輯思考明白就能想出來
//閏年的判斷:能被400整除或能被4整除但是不能被100整除,平年365天,閏年366天,多的一天在二月,2024是閏年 
//每年同一天星期數的變化要分為兩種情況:第一種是這一天在每年2月28及之前,第二種是在3月1日及以后 
//要這樣分類討論就是因為閏年多的那一天是2月29日//第一種情況:2023.2.1是星期三,問2024.2.1及2025.2.1是星期幾?
//2023.2.1到2024.2.1過了一年,雖然2024年是閏年但是過的這一年并沒有涉及2月29日,所以這一年過了365天 
//即2023.2.1到2024.2.1過了365天,365%7=1,即過了n周多一天,所以2024.2.1星期相比23向后推一天,即星期四
//同理,2024.2.1到2025.2.1過了一年,但是2024是閏年并且這一年涉及2月29日,所以這一年過了366天
//即2024.2.1到2025.2.1過了366天,366%7=2,即過了n周多兩天,所以2025.2.1星期相比24向后推兩天,即星期六//第二種情況如題:2024.6.1是星期六,問哪一年的6.1也是星期六?
//2024.6.1到2025.6.1過了一年,雖然2024是閏年但是過的這一年并沒有涉及2月29日,所以這一年過了365天
//365%7=1,2025.6.1星期相比2024向后推一天,即星期天 
//2025.6.1~2026.6.1,365%7=1,2026.6.1是星期一
//2026.6.1~2027.6.1,365%7=1,2027.6.1是星期二
//2027.6.1~2028.6.1,2028是閏年且涉及2月29日,366%7=2,2028.6.1是星期四
//2028.6.1~2029.6.1,2028是閏年但是不涉及2月29日,365%7=1,2029.6.1是星期五
//2029.6.1~2030.6.1,365%7=1,2030.6.1是星期六//當然可以用代碼實現,顯然這比年月日三重for循環遍歷的思路簡短
#include<bits/stdc++.h>
using namespace std;int cnt;bool isleaqyear(int y)  //定義函數判斷閏年 
{if(y%400==0||(y%4==0&&y%100!=0)){return true;}else{return false;}
}int main()
{for(int year=2025;year<=2099;year++)//從2025開始遍歷,結束先設一個比較大的年份,反正找到就退出 {if(isleaqyear(year)==true) //就是將上面的思路轉換為代碼(這里涉及2月29日是看后面的年份) {cnt+=2; //如果是閏年,相當于星期向后推兩天 }else{cnt+=1; //如果是平年,相當于星期向后推一天 }if(cnt%7==0) //看看向后推了幾周余幾天,這里表示的是沒有余天數,即還是星期六 {cout<<year<<endl;return 0;  //只要找到第一個成立的年份就退出 }}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902405.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3中provide和inject數據修改規則

在 Vue3 中&#xff0c;通過 inject 接收到的數據是否可以直接修改&#xff0c;取決于 provide 提供的值的類型和響應式處理方式&#xff1a; 1. 若提供的是普通值&#xff08;非響應式數據&#xff09; javascript 復制 // 父組件 provide(staticValue, 123); 子組件修改行…

今日CSS筆記

原手寫筆記 ------------------------------------------------------------------------------------------------------- css選擇器的種類有很多種。這里只介紹幾種常用的選擇器。 1. 標簽選擇器標簽選擇器是最基本的選擇器&#xff0c;它可以選擇所有的標簽。例如&#xff…

健康生活新指南

在 “朋克養生” 與 “躺平焦慮” 并存的時代&#xff0c;真正的健康生活無需刻意 “內卷”。這幾個簡單又實用的養生妙招&#xff0c;能讓你在忙碌日常中悄悄升級健康狀態&#xff0c;輕松擁抱活力人生。? 一、飲食&#xff1a;吃對食物&#xff0c;給身體 “加 Buff”? 別…

輕量級景好鼠標錄制器

景好鼠標錄制器&#xff08;詳情請戳 官網&#xff09;是一款免費無廣的鍵鼠動作錄制/循環回放工具&#xff0c;輕松自動化應對一些重復繁瑣的操作任務&#xff0c;如來回切換窗口、文檔同一相對位置的復制粘貼等場景&#xff0c;兼容Win XP - 11 。畢竟此款本身主打簡約類型&a…

結構體與共用體-------C語言經典題目(3)

結構體 1.如何定義和使用結構體指針&#xff1f; 1.結構體指針的定義 首先需要定義結構體類型&#xff0c;例如表示學生信息的結構體&#xff1a; struct Student {char name[50];int age;float score; };接著&#xff0c;使用struct 關鍵字和指針符號* 聲明結構體指針&#x…

未來教育風向標 | 教育學頂流985高校,華東師范大學《AIGC技術賦能教育數字化轉型的機遇與挑戰》,13所大學deepseek

今天大師兄給大家推薦的是華東師范大學祝智庭教授的《AIGC技術賦能教育數字化轉型的機遇與挑戰》。華東師范大學是一所985學校&#xff0c;在最新的國家學科測評中&#xff0c;軟件工程為A級&#xff0c;教育學為A級。 可以說在AI和教育的結合上是國內top級別的存在。 此講義探…

Java常用正則表達式及使用方法

在 Java 中&#xff0c;Pattern 和 Matcher 類是 java.util.regex 包的核心&#xff0c;用于處理正則表達式。 Pattern 類 Pattern 類表示編譯后的正則表達式&#xff0c;它提供了一種將正則表達式字符串編譯成可執行對象的方式&#xff0c;以便后續用于匹配操作。 常用方法…

車載軟件架構 --- 駕駛員不感知的控制器軟件運行

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

深度學習3.5 圖像分類數據集

%matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transforms from d2l import torch as d2l代碼執行流程圖 #mermaid-svg-WWhBmQvijswiICpI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…

Kotlin集合全解析:List和Map高頻操作手冊

Kotlin 中 Map 和 List 常用功能總結 List 常用功能 創建 List val immutableList listOf(1, 2, 3) // 不可變列表 val mutableList mutableListOf("a", "b", "c") // 可變列表 val emptyList emptyList<String>() // 空列表基本…

Yocto項目實戰教程-第7章定制鏡像菜譜與內核菜譜-7.2小節-定制應用程序

&#x1f50d; B站相應的視頻教程&#xff1a; &#x1f4cc; Yocto項目實戰教程-第7章-定制鏡像菜譜與內核菜譜 記得三連&#xff0c;標為原始粉絲,感謝大神支持。 在嵌入式Linux系統開發中&#xff0c;定制專屬應用程序往往是最貼近產品交付的那一環。而Yocto項目&#xff0c…

【圖像輪廓特征查找】圖像處理(OpenCV) -part8

17 圖像輪廓特征查找 圖像輪廓特征查找其實就是他的外接輪廓。 應用&#xff1a; 圖像分割 形狀分析 物體檢測與識別 根據輪廓點進行&#xff0c;所以要先找到輪廓。 先灰度化、二值化。目標物體白色&#xff0c;非目標物體黑色&#xff0c;選擇合適的兒值化方式。 有了輪…

C# 的 字符串插值($) 和 逐字字符串(@) 功能

這段代碼使用了 C# 的 字符串插值&#xff08;$&#xff09; 和 逐字字符串&#xff08;&#xff09; 功能&#xff0c;并在 SQL 語句中動態拼接變量。下面詳細解釋它們的用法&#xff1a; 1. $&#xff08;字符串插值&#xff09; $ 是 C# 的 字符串插值 符號&#xff0c;允許…

mockMvc構建web單元測試學習筆記

web應用本來需要依靠tomcat這個環境運行 現在用mockMvc是為了模擬這個web環境&#xff0c;簡化測試 什么是mock(模擬) 模擬對象---mock object是以可控方式模擬真實對象行為的假對象&#xff0c;通過模擬輸入數據&#xff0c;驗證程序達到預期結果 為什么使用mock對象 因為…

6.7.圖的深度優先遍歷(英文縮寫DFS)

樹是特殊的圖&#xff0c;沒有回路的圖就是樹 BFS與DFS的區別在于&#xff0c;BFS使用了隊列&#xff0c;DFS使用了棧 一.深度優先遍歷&#xff1a; 1.樹的深度優先遍歷&#xff1a; 樹的深度優先遍歷分為先根遍歷和后根遍歷。 以樹的先根遍歷為例&#xff1a; 上述圖片里…

VOS3000內存滿了怎么刪除,錄音格式如何轉換呢

一、清理VOS3000內存&#xff08;刪除舊錄音文件&#xff09; 定位錄音存儲目錄 通常錄音文件存儲在以下路徑&#xff08;以實際配置為準&#xff09;&#xff1a; bash 復制 下載 /usr/local/vos/record # 默認錄音目錄 /var/log/vos/logs # 系統日志目錄&#xff08;…

【圖問答】DeepSeek-VL 論文閱讀筆記

《DeepSeek-VL: Towards Real-World Vision-Language Understanding》 1. 摘要/引言 基于圖片問答&#xff08;Visual Question Answering&#xff0c;VQA&#xff09;的任務 2. 模型結構 和 三段式訓練 1&#xff09;使用 SigLIP 和 SAM 作為混合的vision encoder&#xf…

MATLAB - 模型預測控制(MPC)使用 ADMM 求解器四分之一汽車懸架懸掛系統動力學控制

系列文章目錄 目錄 系列文章目錄 前言 一、四分車懸架模型 二、道路干擾剖面 三、設計模型預測控制器 四、設置優化求解器 五、輔助函數 前言 本例展示了如何為四分之一汽車懸架系統設計模型預測控制器 (MPC)&#xff0c;采用乘法交替方向法 (ADMM) 求解器來控制主動懸架…

基于多模態融合算法的航空武器毀傷評估技術方案

基于多模態融合算法的航空武器毀傷評估技術方案 1. 引言 航空武器毀傷評估(Damage Assessment, DA)是現代戰爭中的關鍵環節,直接影響后續作戰決策。傳統的人工評估方式效率低、主觀性強,且在高強度戰場環境下難以實時完成。因此,本研究提出一種基于多模態融合算法的自動…

LeetCode算法題(Go語言實現)_49

題目 給定整數數組 nums 和整數 k&#xff0c;請返回數組中第 k 個最大的元素。 請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 你必須設計并實現時間復雜度為 O(n) 的算法解決此問題。 一、代碼實現&#xff08;快速選擇…