洛谷題解 CF4B Before an Exam

2021-10-23 22:49:22 字數 1075 閱讀 3154

這道題一開始沒理解清楚題意,以為只要最後把每個時長隨機順序輸出來就行,結果。。。是我vegetable炸了。。

於是就重新寫。?

這是個比較典型的貪心題,我的思路就是先判斷這個peter

能不能活下來,能不能滿足要求。

這個判斷是比較簡單的,如果要每一天都滿足要求的話,充要條件就是:

sum<=sumtime

&&

sum<=sumtime

這樣就判斷出來了。

接下來就是分配時長。

既然已經"yes"了,說明至少每一天 min[i] 是能夠滿足的,所以先分配給每一天乙個 min[i] ,在我的**裡方便起見直接使用了 minax[i][0] 這個陣列儲存每天的時長,接下來就迴圈判斷了,如果某一天能達到 max[i] ,就直接分配給他該天的最大時長,就一直這樣分配,直到出現不能取 max[i],就直接取剩餘的 sumtime 即可。

後面的時長自然而然地就是 minax[i][0] 本身的值了。

思路還是比較清晰簡單的,主要是細節要注意到位…這種分配的思想也要多掌握。

以下是c++**:

#include

#include

#include

#include

#include

using

namespace std;

int d;

int sumtime;

int minax[

100][2

]=;int sum1=

0,sum2=0;

int i;

intmain()

if(sumtime >= sum1 && sumtime <= sum2)

else

i++;}

for(i=

0;ielse

return0;

}

希望能和大家互相學習。

洛谷 CF196A 題解

題目傳送門 讀入字串,求該串的最大字典序子串行。迴圈判斷只要當前字元比後面所有的字元的字典序大,就把這個字元存到另乙個字串中,最後和輸入的字串迴圈比較如果該字元和輸入時的是相同的,就輸出。因為比較字串的字典序是要從第乙個字元開始依次往後比較的,所以要想取到最大字典序子串行,就要倒著查詢!includ...

洛谷 CF877D 題解

題目傳送門 給定乙個 n m 的迷宮和 k 然後給定起點和終點,每次可以像四個方向走 1 k 步 只能走.的格仔 求從起點到終點的最小時間,如不能到達輸出 1 這道題求的是最小時間,可以用 bfs 加剪枝來做,建乙個 stl 的佇列,把每次向外擴充套件的四個點分別判斷是否合法,如果沒有出界並且合法就...

洛谷 比賽題解

這套題的題目質量很高,寫一發題解。t1 cjwssb最近在物理學科上遇到了難題,他不會計算乙個電路中的總電阻,現在他找到了你,希望你能幫助他。這個電路有如下限定 1 電路只由導線以及電阻為一歐的電阻組成 2 保證電路從左到右連線,即每個電阻或導線的兩個連線點xy保證x 我們可以用dfs求解,這個電路...