【藍橋杯14天沖刺課題單】Day 1

?1. 題目鏈接:19937 藝術與籃球

該題目的難點主要在20240413這個日期需要結束程序跳出循環。最開始將該輸出ans的位置放在了for循環之外,此時的日期已經循環完了2024年所有的日期,則最后會統計多而導致結果錯誤。

AC代碼:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int day_1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//用數組預處理每月的天數
int day_2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum_num[10]={13,1,2,3,5,4,4,2,2,2};//預處理每一個數字的文字筆畫
bool check_year(int year) //判斷閏年,便于選擇月份
{if((year%4 == 0 && year%100!=0)||(year%400 == 0)) return 1;else return 0;	
}
int main()
{int ans=0,result=0,m,d,sum=0;for(int y=2000;y<=2024;y++){if(check_year(y) == 1) {for(m=1;m<=12;m++){for(d=1;d<=day_1[m];d++){sum=0;result=(y*10000)+(m*100)+d;while(result){sum += sum_num[result%10];result=result/10;}if(sum > 50) ans++;if ((y == 2024) && (m >= 4) && (d >= 13)) {cout<<ans;return 0;}//就是這一段輸出的位置需要注意}}}else if(check_year(y) == 0) {for(m=1;m<=12;m++){for(d=1;d<=day_2[m];d++){sum=0;result=(y*10000)+(m*100)+d;while(result){sum += sum_num[result%10];result=result/10;	}if(sum > 50) ans++;	if ((y == 2024) && (m >= 4) && (d >= 13)) {cout<<ans;return 0;}//已知2024是閏年,此處可以不需要這個輸出}}}}
} 

這個方法有重復的代碼,需要簡化。


?2.題目鏈接:?3491 幸運數

該題目為填空題,可以直接進行輸出。

最開始的算法是將每一個數字進行拆分,算出位數,再進行判斷是否為偶數位。接著判斷該數的左右兩邊的和是否相等,最后進行個數統計。這里因為數字是從后往前分離的,且是偶數位,則可以先統計后面的,到一半的長度時停止,再換另一個計數器統計前一半。但測評結果是TLE。那么不能使用直接分離的方法。

TLE的枚舉代碼:

#include <iostream>
#include <cstdio>
#include <cmath>
#pragma GCC optimize(2)
using namespace std;
int check_number(int num)
{int ans=0;while(num){num=num/10;ans++;}if(ans%2 == 0) return ans;else return 0;
}
int main() 
{int result=0;for(int i=10;i<=100000000;++i){int sum_1=0,sum_2=0,half;int number=i;if(check_number(i) != 0){half=check_number(i)/2;for(int j=1;j<=half;j++){sum_1 += number%10;number /=10;}for(int j=1;j<=half;j++){sum_2 += number%10;number /=10;}if(sum_1 == sum_2) result++;}else continue;}cout<<result;return 0;
}

?根據藍橋杯的官方題解,可以將數字轉換成字符串,則可以用字符串相關的函數直接得出結果數字的長度,進而判斷數字是否為偶數位。這個方法直接將時間復雜度從O(n)降到了O(1)。

#include<bits/stdc++.h>
using namespace std;
int main()
{int ans = 0;for (int i = 1; i <= 100000000; ++i) {string s = to_string(i); //直接轉換成字符串,便于統計數字長度,時間復雜度為O(1);int n = (int)s.size();if (n % 2) continue;int l = 0, r = 0;for (int j = 0; j < n; ++j) {if (j < n / 2) l += s[j] - '0';//字符轉換為數字else r += s[j] - '0';}if (l == r) ans++;}cout << ans << '\n';//4430091return 0;
}

3. 題目鏈接:1600 平方差

根據條件,最大的數字不超過2021,則可以將1到2021的所有可能性枚舉出來。

同時因為a^2-b^2 =(a + b)(a-b),用sum數組進行統計,只要滿足1到2021之間這個條件的數字就存入數組,不用管是否為1個拆分方式;最后遍歷數組,存了數字的數組就計數器加1。因為是開的全局數組可以不用memset數組為0。?

#include <iostream>
#include <cstdio>
using namespace std; 
const int maxn=1e7;
int sum[maxn];
int main()
{int result,ans=0;for(int i=1;i<=2021;i++){for(int j=0;j<i;j++){result=(i+j)*(i-j);if(result>=1&&result<=2021) sum[result]++;}}for(int i=1;i<=2021;i++){if(sum[i]!=0){ans++;}}cout<<ans;return 0;
}

!!一開始無思路的題

4. 題目鏈接:19732 小球反彈

首先根據題目,?將小球的運動方向拆解為x軸方向上的運動和y軸方向的運動。設小球在x軸方向的運動距離d_x = 15t,y軸方向上的運動距離為d_y = 17t。根據勾股定理,小球每秒移動的距離d =\sqrt{d_x^2+d_y^2}

當小球?A?回到起點時,說明其在水平方向上的移動距離是長方形長度L_x = 343720的偶數倍,在垂直方向上的移動距離是長方形寬度L_y = 233333的偶數倍。因為小球碰壁反彈的路徑與原來的路徑相同,那么相同的路徑走了偶數倍。

假設從開始到結束,小球總共花費了t?秒,那么有:

d_x = 15td_y = 17t

同時需要滿足:?\frac{d_x}{L_x} = 2k_1,(k_1 \in N^*)\frac{d_y}{L_y} = 2k_2,(k_2 \in N^*)

由此,對?t?進行枚舉,直至找到滿足?15t?整除?343720且17t?整除?233333,\frac{d_x}{L_x}和?\frac{d_y}{L_y}均為偶數的?t。

最終求得答案為?1100325199.77

需要注意的是,所求答案需要保留兩位小數,則距離的數據類型需要用double。

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define ll long long int
bool check(ll a,ll b)
{if((a % b == 0)&&((a/b)%2 == 0)) return 1;else return 0;
}
int main()
{ll x=343720,y=233333;ll lx,ly;double dis;ll t;for(ll i=1;;i++){t=i;lx=15*t;ly=17*t;if(check(lx,x) && check(ly,y)) break;}dis=sqrt(15*t*15*t+17*t*17*t);printf("%.2lf",dis);return 0;
}

?

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

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

相關文章

AI人工智能-Jupyter NotbookPycharm:Py開發

安裝 命令&#xff1a; pip install jupyter 啟動 命令&#xff1a; jupyter notebook 啟動成功后&#xff0c;下面網址會默認自動打開當前用戶的根目錄。 其實這個頁面顯示的內容&#xff0c;是我們電腦目錄C:\Users\當前用戶\下的文件夾 我們平常做實驗&#xff0c;希望在…

命懸生死線:當游戲遭遇DDoS圍剿,如何用AI破局?

文章作者&#xff1a;騰訊宙斯盾DDoS防護團隊 一、血色戰場&#xff1a;DDoS攻擊游戲產業的致命瞬間 全球黑色星期五 這是一場波及全球的“黑色星期五”&#xff0c;起初無人察覺&#xff0c;包括小林。 他剛下班到家就迫不及待打開電腦&#xff0c;準備體驗期待已久的《黑神話…

使用HTML5和CSS3實現3D旋轉相冊效果

使用HTML5和CSS3實現3D旋轉相冊效果 這里寫目錄標題 使用HTML5和CSS3實現3D旋轉相冊效果項目介紹技術棧核心功能實現思路1. HTML結構2. CSS樣式解析2.1 基礎樣式設置2.2 3D效果核心樣式2.3 卡片樣式 3. JavaScript交互實現3.1 旋轉控制3.2 自動播放功能 技術要點總結項目亮點總…

【HTML 基礎教程】HTML <head>

HTML <head> 查看在線實例 <title> - 定義了HTML文檔的標題 使用 <title> 標簽定義HTML文檔的標題 <base> - 定義了所有鏈接的URL 使用 <base> 定義頁面中所有鏈接默認的鏈接目標地址。 <meta> - 提供了HTML文檔的meta標記 使用 <me…

macbook電腦如何清理鍵盤防止誤觸

M1芯片的MacBook電腦關機后按任意鍵開機&#xff0c;是蘋果的功能設計。這樣設計的目的是為了方便用戶&#xff0c;讓用戶在想要使用電腦時能快速開機。但是清理電腦鍵盤的時候卻成為了一種苦惱 以下是一些清理 MacBook 鍵盤防止誤觸的方法&#xff1a; 使用工具鎖定鍵盤 Cle…

Rust 面向對象

Rust 面向對象 引言 Rust 是一種系統編程語言,以其高性能、內存安全和并發支持而受到關注。Rust 的面向對象特性是其強大功能之一,它允許開發者以面向對象的方式構建復雜的應用程序。本文將深入探討 Rust 的面向對象編程(OOP)特性,包括類的定義、繼承、封裝和多態等概念…

Redis 源碼硬核解析系列專題 - 第二篇:核心數據結構之SDS(Simple Dynamic String)

1. 引言 Redis沒有直接使用C語言的標準字符串(以\0結尾的字符數組),而是自定義了SDS(Simple Dynamic String)。SDS是Redis的基礎數據結構之一,廣泛用于鍵值存儲、命令參數等場景。本篇將深入剖析SDS的實現原理、優勢以及源碼細節。 2. 為什么不用C標準字符串? C字符串…

python-59-基于python內置庫解析html獲取標簽關鍵信息

文章目錄 1 html.parser1.1 初始化和基礎使用1.1.1 handle_starttag(self, tag, attrs)1.1.2 handle_endtag(self, tag)1.1.3 handle_startendtag(self, tag, attrs)1.1.4 handle_data(self, data)1.1.5 handle_comment(self, data)1.2 解析HTML文檔的流程2 百度搜索關鍵詞鏈接…

Java的string默認值

在Java中&#xff0c;String類型的默認值取決于其定義和實例化的方式。 以下是關于String默認值的詳細說明 未實例化的String變量? 如果定義一個String變量但未對其進行實例化&#xff08;即未使用new關鍵字或直接賦值&#xff09;&#xff0c;其默認值為:ml-search[null]。這…

高并發系統下的訂單號生成服務設計與實現

目錄 引言 訂單號設計的關鍵考量因素 基礎需求分析 唯一性保障 數據量預估 可讀性設計 系統架構考量 分庫分表兼容 可擴展性設計 技術選型與比較 性能優化 高可用性保障 實踐案例&#xff1a;高并發系統訂單號結構設計 結構詳解 業務類型標識(2位) 唯一標識部分…

使用LLaMAFactory微調Qwen大模型

一、環境配置與工具安裝 1. 硬件要求 GPU:至少1塊NVIDIA GPU(推薦RTX 4090/A100/H100,顯存≥16GB)。內存:≥64GB系統內存。存儲:≥100GB硬盤空間用于模型與數據集存儲。2. 軟件依賴 Python 3.8+:需安裝CUDA支持的PyTorch版本(如torch==2.0.1+cu117)。 依賴庫:通過以…

2025-3-29算法打卡

一&#xff0c;回文判定 1.題目描述&#xff1a; 題目描述 給定一個長度為 nn 的字符串 SS。請你判斷字符串 SS 是否回文。 輸入描述 輸入僅 11 行包含一個字符串 SS。 1≤∣S∣≤1061≤∣S∣≤106&#xff0c;保證 SS 只包含大小寫、字母。 輸出描述 若字符串 SS 為回…

Android 接 Twitter Share ,常見問題及解決方案

1. 應用未授權或授權失敗 問題描述:當嘗試分享內容到 Twitter 時,應用提示未授權,或者在授權過程中出現錯誤,無法獲取授權碼或訪問令牌。解決方案 檢查 Twitter API 密鑰和密鑰密碼:確保在 Twitter 開發者平臺創建應用后,獲取的 API 密鑰(Consumer Key)和 API 密鑰密碼…

【數據結構】樹與森林

目錄 樹的存儲方法 雙親表示法 孩子表示法 孩子兄弟表示法 樹、森林與二叉樹的轉換 樹轉換成二叉樹 森林轉換成二叉樹 二叉樹轉換成森林 樹與森林的遍歷 樹的遍歷 森林的遍歷 樹的存儲方法 雙親表示法 這種存儲結構采用一組連續空間來存儲每個結點&#xff0c;同時…

html5基于Canvas的動態時鐘實現詳解

基于Canvas的動態時鐘實現詳解 這里寫目錄標題 基于Canvas的動態時鐘實現詳解項目介紹技術棧項目架構HTML結構核心樣式設計 核心功能實現1. 時鐘表盤繪制2. 時鐘指針動畫3. 主題切換實現4. 時間格式切換 技術要點總結項目亮點總結參考資料 項目介紹 在這篇文章中&#xff0c;我…

Deepseek API+Python 測試用例一鍵生成與導出 V1.0.3

** 功能詳解** 隨著軟件測試復雜度的不斷提升,測試工程師需要更高效的方法來設計高覆蓋率的測試用例。Deepseek API+Python 測試用例生成工具在 V1.0.3 版本中,新增了多個功能點,優化了提示詞模板,并增強了對文檔和接口測試用例的支持,極大提升了測試用例設計的智能化和易…

react如何引用(按需加載)百度地圖,并結合and組件化封裝

1.技術選項: vitereactantdesign load-script 2.實現思路&#xff1a; 1.按需加載如何實現? 要實現按需加載就不能直接在項目的入口文件這種地方去通過script標簽引入&#xff0c;這里使用load-script封裝了一個加載百度地圖的Bmap.js方法,實現動態的插入script腳本。 根…

LeetCode 第31~33題

目錄 LeetCode 第31題&#xff1a;下一個排列 LeetCode 第32題&#xff1a;最長有效括號 LeetCode 第33題&#xff1a;搜索旋轉排序數組 LeetCode 第31題&#xff1a;下一個排列 題目描述 整數數組的一個排列就是將所有成員以序列或線性順序排列。例如arr[1,2,3]&#xff0c;以…

虛擬現實--->unity學習

前言&#xff1a;這學期勞動課選了虛擬現實&#xff0c;其中老師算挺認真的&#xff0c;當然對一些不感興趣的同學來說是一種折磨&#xff0c;我對這個unity的學習以及后續的虛幻引擎剛開始連基礎的概念都沒有&#xff0c;后面漸漸也是滋生了一些興趣&#xff0c;用這篇博客記錄…

在Trae中設置Python解釋器版本

Python 是一種廣泛使用的高級編程語言&#xff0c;因其簡潔易讀的語法和強大的功能而備受歡迎。隨著 Python 的不斷發展&#xff0c;多個版本相繼發布&#xff0c;每個版本都帶來了新特性和改進。然而&#xff0c;這也帶來了一些問題&#xff0c;比如不同的工程&#xff0c;需要…