每天兩道算法題:DAY1

題目一:金幣

題目一:金幣

1.題目來源:

NOIP2015 普及組 T1,難度紅色,入門簽到題。

2.題目描述:

3.題目解析:

問題轉化:求下面的一個數組的前 k 項和。

4.算法原理:

模擬

簽到題,只需要進行簡單的模擬就可以了~~~

我們可以定義兩個變量 cur 和 tmp

tmp 表示當前加的是哪一個數。

cnt?表示當前這個數還要加多少次。

仔細觀察,可以發現,1加1次,2加2次,3加3次,……,n加n次。

每加一次某一個數,這個數對應的 cnt --,當 cnt 為 0 時,tmp++, cnt = tmp;

5.代碼實現:

#include <iostream>using namespace std;int main()
{int k; cin >> k;int ret = 0;int tmp = 1; // 當前加的數是 1int cnt = 1; // 當前這個數還需要加 1 次 for(int i = 1; i <= k; i++){ret += tmp;cnt--;if(cnt == 0){tmp++;cnt = tmp;}}cout << ret << endl;return 0;
} 

6.總結反思:

在算法競賽中,簽到題是一定要拿滿分的,簽到題要的是快準狠,競賽時千萬不能著急、慌張,想明白之后再寫,遇到 bug 在草稿紙上仔細模擬,再說一遍,千萬不要著急,越著急越錯

題目二:接水問題

題目二:接水問題

1.題目來源:

NOIP2010普及組T2,難度橙色,簽到題。

2.題目描述:

3.題目解析:

這道題,給了我一個深刻的教訓 —— 一定要仔細讀題!!!!!!

我在這道題卡了很長時間,剛開始沒有看到初始接水順序已經確定,以為可以自己安排。朝著貪心方向浪費了很多時間。

這道題其實就是一道簡單的模擬題。直接按照題目模擬即可。

4.算法原理:

模擬+貪心,針對每一位學生,找出所有的水龍頭中,最早結束的那一個,讓他在那里接水

對于貪心正確性可以用交換論證法來證明。這里是顯然正確的,就不再贅述了。

可以用一個小根堆來模擬,先扔 m 個 0 進去,然后不斷取出堆頂元素,修改后再扔進去。最終結果就是小根堆堆中的最大值。

時間復雜度:O(n log m)

當然了,本題用數組來模擬也是可以的,時間復雜的:O(n * m)

5.代碼實現:

用小根堆來模擬:

#include <iostream>
#include <queue>
#include <vector>using namespace std;int n, m;int main()
{cin >> n >> m;// 小根堆 priority_queue<int, vector<int>, greater<int>> heap;for(int i = 1; i <= m; i++){heap.push(0);}int ret = 0;for(int i = 1; i <= n; i++){int x; cin >> x;int t = heap.top(); heap.pop();t += x;heap.push(t);ret = max(ret, t);}cout << ret << endl;return 0;
} 

用數組來模擬:

#include <iostream>using namespace std;const int N = 110;int n, m;
int a[N]; // 存水龍頭使用總時間信息 int main()
{cin >> n >> m;int ret = 0;for(int i = 1; i <= n; i++){int x; cin >> x;int mini = 0; // 要放入的水龍頭的編號int d = 0x3f3f3f3f; // 最小值for(int j = 1; j <= m; j++){if(d > a[j]){d = a[j];mini = j;}} a[mini] += x;ret = max(ret, a[mini]);}cout << ret << endl;return 0;
} 

6.總結反思:

簽到題一般不會很難,當發現自己做不出來時,可能是題目理解錯了。

一定要仔細讀題!!!

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

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

相關文章

C++核心語言元素與構建塊全解析:從語法規范到高效設計

&#x1f4cc; 為什么需要雙維度學習C&#xff1f;核心語言元素 → 掌握標準語法規則&#xff08;避免未定義行為Undefined behavior&#xff09;構建塊&#xff08;Building Blocks&#xff09; → 像搭積木一樣組合功能&#xff08;提升工程能力&#xff09; 例如&#xff1a…

RK3588開發板Ubuntu系統燒錄

Ubuntu22.04——YOLOv8模型訓練到RK3588設備部署和推理 文章中給出了通過ARM設備上面的NPU進行深度學習的模型推理過程,在此之前,我們在收到一塊全新的rk3588開發板后,需要對其進行系統的燒錄,這里以Ubuntu22.04系統為例。 目錄 1.獲取待燒錄系統的鏡像 2.燒錄工具準備 2.1…

AI評測的科學之道:當Benchmark遇上統計學

AI評測的科學之道&#xff1a;當Benchmark遇上統計學 —— 如何客觀評估大模型能力&#xff0c;避免落入數據陷阱 在人工智能尤其是大語言模型&#xff08;LLU&#xff09;爆發式發展的今天&#xff0c;各類模型榜單&#xff08;如Open LLM Leaderboard、LMSys Arena&#xff0…

CSS 基礎入門教程:從零開始學習樣式表

一、CSS 簡介CSS&#xff08;Cascading Style Sheets&#xff0c;層疊樣式表&#xff09;是一種用于描述 HTML 或 XML 等文檔呈現方式的語言。它是現代網頁設計的三大核心技術之一&#xff0c;與HTML&#xff08;結構層&#xff09;和JavaScript&#xff08;行為層&#xff09;…

圖解簡單選擇排序C語言實現

1 簡單選擇排序 簡單選擇排序&#xff08;Simple Selection Sort&#xff09;是一種基礎且直觀的排序算法&#xff0c;其核心思想是通過重復選擇未排序部分中的最小&#xff08;或最大&#xff09;元素&#xff0c;并將其放到已排序部分的末尾&#xff0c;逐步完成整個序列的排…

FPS游戲時,你的電腦都在干什么(CS2)

人物介紹&#xff1a;CPU > 你忠實的處理器 i5-13600KFGPU > 你花大價錢買的顯卡 RTX3060&#xff08;不是自己的配置&#xff0c;自己的是XEON E5GTX1060&#xff0c;測不出來&#xff0c;上面是社區一個好心大哥的數據&#xff0c;較為精準&#xff09;&#…

MySQL完整重置密碼流程(針對 macOS)

MySQL完整重置密碼流程&#xff08;針對 macOS&#xff09; 1. 強制停止 MySQL 服務 sudo /usr/local/mysql/support-files/mysql.server stop sudo killall mysqld mysqld_safe # 確保所有進程停止2. 以安全模式啟動&#xff08;跳過權限驗證&#xff09; sudo /usr/local/my…

Python數據類型轉換詳解:從基礎到實踐

在Python編程中&#xff0c;數據類型轉換是一項基礎且頻繁使用的操作。無論是處理用戶輸入、進行數值計算還是數據處理&#xff0c;都離不開類型轉換。本文將系統介紹Python中的數據類型體系&#xff0c;詳解類型轉換的規則與實踐技巧&#xff0c;幫助你在實際開發中靈活運用。…

智能制造——解讀車企數字化轉型構建高效經營管理數據治理體系【附全文閱讀】

適應人群為車企數字化轉型決策者、數據管理負責人、IT 部門從業者、財務及業務部門管理者。主要內容圍繞車企數字化轉型中經營管理數據治理體系構建展開,核心包括診斷背景(以經營管理數字化為切入點,聚焦財務業務在線化、零點月結等痛點,應對系統與數據問題);現狀診斷(從…

STM32的UART奇偶校驗注意

關鍵點&#xff1a;設置為9位數據位&#xff0c; STM32的UART奇偶校驗注意_stm32串口奇校驗初始化程序-CSDN博客https://blog.csdn.net/JacobFang/article/details/118993643 特此記錄 anlog 2025年8月13日

Origin繪制正態分布直方圖+累積概率圖|科研論文圖表教程(附數據格式模板)

免費查看完整教程(包括數據格式) ↑ ↑ ↑ 目錄 本 期 導 讀 No.1 理解圖形 1 定義 2 圖形特點 3 應用場景 No.2 畫圖教程 1 導入數據,繪制圖形 2 設置繪圖細節 本 期 導 讀 直方圖,以柱狀高低直觀展現各區間數據的分布密度,集中趨勢、離散程度與異常…

Python入門第6課:文件操作之讀寫文本、CSV與JSON文件

Python入門第6課:文件操作之讀寫文本、CSV與JSON文件 作者: 蛋皮 標簽: Python, 文件操作, 讀寫文件, 文本文件, CSV, JSON 在掌握了Python的基礎語法、數據結構和函數之后,你的程序已經能夠處理內存中的數據。但現實世界的數據通常存儲在文件中。無論是用戶的配置信息、日…

基于Uni-app+vue3實現微信小程序地圖固定中心點范圍內拖拽選擇位置功能(分步驟詳解)

一、功能概述與實現步驟1.1 功能需求顯示地圖并固定中心點標記繪制服務區域多邊形邊界實時檢測拖拽后位置是否在服務區內提供位置確認和超出范圍提示功能1.2 實現步驟分解第一步&#xff1a;初始化地圖基礎配置創建Map組件并設置基本屬性定義服務區域多邊形坐標設置地圖初始中心…

《設計模式》抽象工廠模式

1.抽象工廠模式定義 抽象工廠模式&#xff08;Abstact Factory &#xff09;&#xff1a; 提供一個創建一系列相關或者相互依賴對象的接口&#xff0c;而無須指定它們具體的類。 1.1 UML圖&#xff1a;2.抽象工廠模式舉例&#xff1a; 業務場景&#xff1a;需要實現一個數據訪問…

git stash臨時保存工作區

通過git stash 可以靈活管理臨時修改&#xff0c;保持工作區整潔&#xff0c;是多人協作或多任務切換時的常用工具&#xff0c;主要用于臨時保存工作區和暫存區修改的命令&#xff0c;常用于以下場景&#xff1a;&#xff08;1&#xff09;需要切換分支&#xff0c;但不想立即提…

Vue 3.5+ Teleport defer 屬性詳解:解決組件渲染順序問題的終極方案

&#x1f4cb; 概述 Vue 3.5 引入了 Teleport 的 defer 屬性&#xff0c;這是一個重要的延遲解析特性。傳統的 Teleport 在組件掛載時會立即解析目標容器&#xff0c;而 defer 屬性允許推遲 Teleport 的目標解析&#xff0c;直到應用的其他部分掛載完成。 ?? 傳統 Teleport …

【102頁PPT】某著名企業智能制造解決方案及智能工廠產品介紹(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808811/91662620 資料解讀&#xff1a;某著名企業智能制造解決方案及智能工廠產品介紹 詳細資料請看本解讀文章的最后內容 智能制造背景與整體規劃…

Revisiting Character-level Adversarial Attacks for Language Models

文章目錄**核心設計目標****關鍵步驟與實現細節**1. **候選位置選擇&#xff08;Algorithm 1: get_top_locations&#xff09;**2. **擾動生成與篩選&#xff08;Algorithm 2: Charmer&#xff09;**3. **適配大語言模型&#xff08;LLM&#xff09;的攻擊****實驗中的性能表現…

(一)Python + 地球信息科學與技術 (GeoICT)=?

目錄 引子 一、核心定位&#xff1a;Python 為何能重塑 GeoICT&#xff1f; 二、Python 在 GeoICT 中的關鍵應用領域 1. 空間數據處理&#xff08;GIS 基礎&#xff09; 2. 遙感圖像處理與解譯 3. 空間分析與建模 4. 地學數據可視化 5. 時空大數據分析 三、Python GeoI…

OpenAI 發布了 GPT-5,有哪些新特性值得關注?國內怎么使用GPT5?

GPT-5很強&#xff0c;在LMAreana上獲得了1481分&#xff0c;超過Gemini 2.5 Pro&#xff0c;奪回第一。 國內怎么使用GPT5&#xff1f;-> zhangfeidezhu.com/?p1033 這次發布的GPT-5系列包含三個模型&#xff1a; GPT-5&#xff1a;適合復雜推理、廣泛的世界知識&#x…