打卡 Acwing學習記錄6 0

2021-10-03 15:22:01 字數 3925 閱讀 1045

(ps.學習打卡記錄)

其實是在洛谷寫的題,acwing的還沒做

1 . 花生採摘

題意簡述:給一張花生的分布圖,從底部任意位置出發,每次都去花生最多的地方,問體力耗盡前能採多少。

因為固定了每次都去最多的地方,所以不存在 dpdp

dp的問題,直接照著題意模擬即可。

#include

using

namespace std;

struct node

bool

operator

<

(const node &t1)

const};

static priority_queue point;

int n, m, k, ans;

bool

check

(node cur, node next)

intmain()

} node cur = point.

top();

point.

pop();

bool flag =

true;if

(cur.x *2+

1<= k)

else flag =

false

;while

(!point.

empty()

&& flag)

else

flag =

false;}

cout << ans << endl;

}

2 . 數的劃分

題意簡述:將乙個正整數分成幾個數的和,問有多少中方案。

遞迴列舉組合即可,需要注意的是遞迴剪枝,有些肯定沒有合法方案的方向不用遞迴。每一層列舉到總數減去當前和就行。

#include

using

namespace std;

int n, k;

int ans =0;

void

dfs(

int cur,

int num,

int sum)

}int

main()

3 . 放蘋果

題意簡述:將 m

mm 個蘋果放進 n

nn 個盤中,有多少種方案。(盤子相同無序)

和上題思路差不多,遞迴列舉即可(主要是資料規模不大)。不同的是這題 n

nn

#include

using

namespace std;

int n, m;

int ans =0;

void

dfs(

int cur,

int num,

int sum)

if(num >= n)

return

;for

(int i = cur; i <= m - sum;

++i)

}int

main()

4 . 傳球遊戲

題意簡述:n

nn 個同學圍成一圈,每個同學可以選擇向左或者向右傳遞,吹哨停止時,球在手上的同學就要收懲罰,問從小明開始傳球,經過 m

mm 次後又回到小明手上的方案有多少。

讀完題,發現乙個同學能不能拿到球,只由他左邊和右邊的同學決定,所以設 dp[

i][j

]dp[i][j]

dp[i][

j]表示第 i

ii 個同學經過 j

jj 次傳球後球停在他手上的所有方案的集合,dp[

i][j

]dp[i][j]

dp[i][

j]存的方案數。

#include

using

namespace std;

int dp[50]

[50];

intmain()

} cout << dp[0]

[m]<< endl;

return0;

}

4 . 進擊的奶牛

題意簡述:有 n

nn 個隔間,每個隔間座標 x

ix_i

xi​ ,小明要放 c

cc 隻牛進去,又不希望小牛生氣,所以要使相鄰的兩頭牛的距離最大,問最大距離的最小值是多少。

找最值問題,轉換為驗證性問題,二分相鄰兩頭牛的距離即可。

#include

typedef

long

long ll;

using

namespace std;

template

<

class

t>

inline

bool

read

(t &ret)

int dp[50]

[50];

vector a;

ll n, c;

bool

check

(ll x)

return num >= c;

}int

main()

else r = mid -1;

} cout << l << endl;

return0;

}

5. 開心的金明

題意簡述:媽媽給了金明 n

nn 元錢,金明對想購買的 n

nn 件物品做了標記,每個物品有乙個價錢 v

iv_i

vi​ ,乙個喜愛程度 w

iw_i

wi​ ,問金明最大能獲得的 σvi

∗w

i\sigma v_i*w_i

σvi​∗w

i​是多少。

經典 dpdp

dp,01

0101

揹包,組合問題。

#include

using

namespace std;

int dp[26]

[30005];

int n, v[30]

,w[30];

intmain()

} cout<[v]

}

6 . 三角形數

題意簡述:給乙個三角形數(具體見原題),問從頂點到底部的最大路徑和。

經典 dpdp

dp,路線問題。設dp[

i][j

]dp[i][j]

dp[i][

j]表示從頂點到第 i

ii 行第 j

jj 個數的所有路徑的集合,dp[

i][j

]dp[i][j]

dp[i][

j]存的最大路徑權值和。很顯然,第 i

ii 行只能來自於它的上一行。

#include

using

namespace std;

int dp[

1002][

1002];

int n, a[

1002][

1002];

intmain()

} dp[1]

[1]= a[1]

[1];

int ans =0;

for(

int i =

2; i <= n; i++)}

cout << ans << endl;

return0;

}

(ps.今天打洛谷多校第二場,自閉了,題目資料連出題人都認為毒瘤。。。寫寫沒那麼難的題換換心情。。。)

My SQL 學習打卡 60天搞定mysql

mysql 5.5.5 版本開始innodb成為了預設儲存引擎 聯結器 鏈結器超時斷開引數 wait timeout 預設 8小時 快取mysql 快取提供按需使用的方式 將引數 query cache type 設定成 demand,這樣對於預設的 sql 語句都不使用查詢快取。而對於你確定要使用...

acWing刷題記錄

費解的開關 你玩過 拉燈 遊戲嗎?25 盞燈排成乙個 5 5 的方形。每乙個燈都有乙個開關,遊戲者可以改變它的狀態。每一步,遊戲者可以改變某乙個燈的狀態。遊戲者改變乙個燈的狀態會產生連鎖反應 和這個燈上下左右相鄰的燈也要相應地改變其狀態。我們用數字 1 表示一盞開著的燈,用數字 0 表示關著的燈。下...

AcWing 60 禮物的最大價值

題目描述 在乙個m n的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能拿到多少價值的禮物?注意 樣例 輸入 2,3,1 1,7,1 4,6,1 輸出 1...