洛谷 P2392 kkksc03考前臨時抱佛腳

2021-10-08 11:09:32 字數 1723 閱讀 9142

kkksc03 的大學生活非常的頹廢,平時根本不學習。但是,臨近期末考試,他必須要開始抱佛腳,以求不掛科。

這次期末考試,kkksc03 需要考 44 科。因此要開始刷習題集,每科都有乙個習題集,分別有 s_1,s_2,s_3,s_4s1​,s2​,s3​,s4​道題目,完成每道題目需要一些時間,可能不等(a_1,a_2,\ldots,a_a1​,a2​,…,as1​​,b_1,b_2,\ldots,b_b1​,b2​,…,bs2​​,c_1,c_2,\ldots,c_c1​,c2​,…,cs3​​,d_1,d_2,\ldots,d_d1​,d2​,…,ds4​​)。

kkksc03 有乙個能力,他的左右兩個大腦可以同時計算 22 道不同的題目,但是僅限於同一科。因此,kkksc03 必須一科一科的複習。

由於 kkksc03 還急著去處理洛谷的 bug,因此他希望盡快把事情做完,所以他希望知道能夠完成複習的最短時間。

本題包含 55 行資料:第 11 行,為四個正整數 s_1,s_2,s_3,s_4s1​,s2​,s3​,s4​。

第 22 行,為 a_1,a_2,\ldots,a_a1​,a2​,…,as1​​ 共 s_1s1​ 個數,表示第一科習題集每道題目所消耗的時間。

第 33 行,為 b_1,b_2,\ldots,b_b1​,b2​,…,bs2​​ 共 s_2s2​ 個數。

第 44 行,為 c_1,c_2,\ldots,c_c1​,c2​,…,cs3​​ 共 s_3s3​ 個數。

第 55 行,為 d_1,d_2,\ldots,d_d1​,d2​,…,ds4​​ 共 s_4s4​ 個數,意思均同上。

輸出一行,為複習完畢最短時間。

輸入 #1複製

1 2 1 3		

54 3

62 4 3

輸出 #1複製

20
1\leq s_1,s_2,s_3,s_4\leq 201≤s1​,s2​,s3​,s4​≤20。

1\leq a_1,a_2,\ldots,a_,b_1,b_2,\ldots,b_,c_1,c_2,\ldots,c_,d_1,d_2,\ldots,d_\leq601≤a1​,a2​,…,as1​​,b1​,b2​,…,bs2​​,c1​,c2​,…,cs3​​,d1​,d2​,…,ds4​​≤60。

分析:這題一眼看過去,貪心,先用sort排序,設定兩個值sum1,sum2,然後盡量讓sum1與sum2相差較小,從最後乙個開始,加入sum1,然後倒數第二個加入sum2,然後判斷sum1和sum2誰小,小的那個加倒數第三個,再判斷sum1和sum2的大小,保證每次都加入到較小者,讓他們平等

上**:

#include#includeusing namespace std;

int s1,s2,s3,s4;

int a[25],b[25],c[25],d[25];

int ans;

int calca();

int calcb();

int calcc();

int calcd();

int main()

left+=t[ss][num];

dfs(ss,num+1);

left-=t[ss][num];

right+=t[ss][num];

dfs(ss,num+1);

right-=t[ss][num];

return ;

}

洛谷 P2392 kkksc03考前臨時抱佛腳

因為資料的範圍不大,可以直接的搜尋,也可以使用01揹包解題對於乙個問題,要麼加在左腦,要麼加在右腦 搜尋所有這樣的組合,選取左右腦中最大的,所有組合最小的時間就是解該科目問題的最短時間。再把四科的時間加起來就是答案。沒有使用任何的剪枝也能過 include include include defin...

洛谷 P2392 kkksc03考前臨時抱佛腳

kkksc03的大學生活非常的頹廢,平時根本不學習。但是,臨近期末考試,他必須要開始抱佛腳,以求不掛科。這次期末考試,kkksc03需要考4科。因此要開始刷習題集,每科都有乙個習題集,分別有s1,s2,s3,s4道題目,完成每道題目需要一些時間,可能不等 a1.as1,b1.bs2,c1.cs3,d...

P2392kkksc03考前臨時抱佛腳

一.題目描述 二.解題思路 剛開始一直有個錯覺,以為左右腦做個貪心就可以了,一交全wa,不信,再交一邊,又全wa,然後我突然想到了以前學dp的時候,做過乙個類似於求解陣列分成兩部分求和最小題目,這個應該就是那個題目的變形,然後我就開始上模板了,一頓cv,交上去莫名ac。三.實現 1 include ...