c c 演算法刷題筆記 洛谷闖關1 2

2021-10-02 22:47:33 字數 2174 閱讀 2599

p1035 級數求和

p1423 小玉在游泳

p1424 小魚的航程(改進版)

p1980 計數問題

前幾篇都是比較基礎的題目,仍然記錄的意義在於:把其他地方的零碎筆記騰上來(不要小看基礎,基礎和基礎加起來就會很牛批了哦),同時回顧以前的題目,看能不能瞬間捋清思路。

題目描述

將1,2, ……,9共9個數分成3組,分別組成3個三位數,且使這3個三位數構成1:2:3的比例,試求出所有滿足條件的3個三位數。

筆記這是第一次寫 dfs 深度優先遞迴演算法。迴圈和遞迴的三要素:出口+入口+第一次

三個重要的陣列 nums[9],result[9],used[9]=,分別用來儲存元原資料,結果資料,值是否改變。字元陣列必須初始化為0通過每次count+1,使函式到達最深層

/*

輸出格式

若干行,每行33個數字。按照每行第11個數字公升序排列。

*/#include

using

namespace std;

const

int n=9;

int result[n]=;

int used[n]=;

int a,b,c;

void

dfs(

int count)

for(

int i=

0;i<

9;i++)}

}int

main()

題目描述

已知:s_n= 1+1/2+1/3+…+1/n 顯然對於任意乙個整數 k,當 n足夠大的時候,s_n>k 現給出乙個整數 k,要求計算出乙個最小的 n,使得 s_n>k

筆記題目變複雜以後,需要提前畫邏輯關係圖,整理思路,想好了再寫不浪費時間。

寫** 3:debug 7

#include

using

namespace std;

intmain()

cout

}

題目描述

小玉開心的在游泳,可是她很快難過的發現,自己的力氣不夠,游泳好累哦。已知小玉第一步能遊2公尺,可是隨著越來越累,力氣越來越小,她接下來的每一步都只能游出上一步距離的98%。現在小玉想知道,如果要游到距離x公尺的地方,她需要遊多少步呢。請你程式設計解決這個問題。

筆記while迴圈 三要素 :出口+入口+第一次(可無)

#include

using

namespace std;

intmain()

cout

}

題目描述

有乙隻小魚,它平日每天游泳 250 公里,週末休息(實行雙休日),假設從周 x(1≤x≤7) 開始算起,過了 n(n<=10^6) 天以後,小魚一共累計游泳了多少公里呢?

筆記需考慮 資料 的合法性,及邊邊角角。資料型別不夠大怎麼辦?如資料超出範圍怎麼辦? 輸入0的結果?

先考慮好邏輯關係,在紙上畫好思維導圖

/*

每日250公里

雙休日周x (1,7)起,過了n天 遊了多少公里

*/#include

using

namespace std;

intmain()

cout

}

題目描述

試計算在區間 11 到 nn的所有整數中,數字x(0 ≤ x ≤ 9)共出現了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,數字 11 出現了 44 次。

筆記問題的關鍵在於怎樣把百位,十位的數與target 進行比較。最好的方法是單獨寫乙個函式實現功能,確保「高內聚低耦合」

#include

#include

using

namespace std;

intcount_num

(int i,

int target)

return cou;

}int

main()

cout << ans << endl;

return0;

}

c c 演算法刷題筆記 經典剪枝問題

題目描述 還記得童話 賣火柴的小女孩 嗎?現在,你知道小女孩有多少根火柴,請找出一種能使用所有火柴拼成乙個正方形的方法。不能折斷火柴,可以把火柴連線起來,並且每根火柴都要用到。輸入為小女孩擁有火柴的數目,每根火柴用其長度表示。輸出即為是否能用所有的火柴拼成正方形。樣例輸入 1,1,2,2,2 輸出 ...

c c 演算法刷題筆記 自測模考 2018

前言 今天做了2018年的上機真題,雖簡單,但除第一題以外其他三題並不無腦。第二道被卡住超過半小時,主要原因 對 string 的操作還不夠熟悉,簡單認知,但不能熟練靈活利用。問題描述 近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。簡化後的跳一跳規則如下 玩家每次從當前方塊跳到下乙個方塊,如果...

資料結構 排序演算法 秒懂演算法 洛谷刷題

時間複雜度 平均o n log2n 最壞的情況o n 2 所以傳統的快排是無法ac的 include using namespace std int n,a 100005 void quicksort int array,int l,int r while left right array left...