暴力列舉 kkksc03考前臨時抱佛腳

2021-10-08 07:51:59 字數 1324 閱讀 3075

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

這次期末考試,kkksc03 需要考 4 科。因此要開始刷習題集,每科都有乙個習題集,分別有 s1,s2,s3,s4 道題目,完成每道題目需要一些時間,可能不等(a1,a2,…,as1,b1,b2,…,bs2,c1,c2,…,cs3,d1,d2,…,ds4)。

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

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

本題包含 5 行資料:第 1 行,為四個正整數 s1,s2,s3,s4。

第 2 行,為 a1,a2,…,as1 共 s1 個數,表示第一科習題集每道題目所消耗的時間。

第 3 行,為 b1,b2,…,bs2 共 s2 個數。

第 4行,為 c1,c2,…,cs3 共 s3 個數。

第 5 行,為 d1,d2,…,ds4 共 s4 個數,意思均同上。

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

輸入樣例

1 2 1 3

54 3

62 4 3

輸出樣例1 ≤ s1,s2,s3,s4 ≤ 20。

1 ≤ a1,a2,…,as1,b1,b2,…,bs2,c1,c2,…,cs3,d1,d2…ds4 ≤ 60。

能夠完成複習的最短時間為四科所需的最短時間的總和,可以先看乙個科目,假設這個科目所需的時間為 t,那麼最佳的答案為 t/2,此時,kkksc03 的左右腦所耗的的時間差為 0,所以,我們所需要做的就是讓 kkksc03 左右腦所耗的時間差盡可能的小,我們先考慮一邊腦的耗時,此時就可以當做是揹包問題來求解了,而我們也只需要尋找當揹包大小為 t/2 時,可以得到的最大耗時,然後將 t 減去我們找到的最大耗時即為我們所需要的答案。

#include

using

namespace std;

int s[4]

,dp[

10000];

int a[4]

[50];

int ans=

0,sum=0;

intmain()

for(

int t=

0;t;t++)}

ans+

=sum-dp[sum/2]

; sum=0;

memset

(dp,0,

sizeof

(dp));

} cout

}

kkksc03考前臨時抱佛腳(洛谷 P2392)

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

P2392kkksc03考前臨時抱佛腳

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

洛谷 1855 榨取kkksc03

洛谷2的團隊功能是其他任何oj和工具難以達到的。借助洛谷強大的伺服器資源,任何學校都可以在洛谷上零成本的搭建oj並高效率的完成訓練計畫。為什麼說是搭建oj呢?為什麼高效呢?因為,你可以上傳私有題目,團隊外別人是無法看到的。我們還能幫你們評測!你可以建立作業,給組員布置任務,檢視組員的完成情況,還可以...