QDUOJ 分辣條 01揹包恰好裝滿情況

2022-05-06 05:33:09 字數 1618 閱讀 4906

描述

「你喝的酸奶是我買的,辣條也是我買的,你現在要跟我分手,你把我當什麼?」

「因為你每次分辣條的時候都比我多一根!」

可見分好辣條是一件多麼重要的事情。。

現在有n(1<=n<=200)根辣條,每根辣條的重量為a1,a2...ai..an(1<=ai<=100)。

那麼能不能把這些辣條分為重量相等的兩份呢?

輸入輸入有多組資料。

每組資料第一行為乙個整數n(1<=n<=200),n代表辣條的數量。

第二行有n個整數,a1,a2...ai..an,其中ai(1<=ai<=100)代表第i根辣條的重量

輸出若能分成重量相等的兩份,則輸出"yes",否則輸出"no"每個答案佔一行

樣例輸入1

複製

3

1 2 1

41 1 1 2

樣例輸出1

yes

no01揹包解決恰好裝滿情況,利用容積與價值相等。

#include#include

intmain()

if(sum%2==1) printf("

no\n");

else}}

if(f[sum]==sum) printf("

yes\n");

else printf("

no\n");}}

return0;

}

description

啊啊有根很大的辣條,重量為n,啊啊想把辣條分給很多小朋友,但是必須滿足下列條件:

1.每個小朋友分得的辣條重量為a,b或c;

2.分得辣條的小朋友的數量最多;

3.沒有剩餘的辣條,也就是說所有辣條都分完啦。

幫幫啊啊找出能分得辣條小朋友的數量。

input

有多組資料,每組資料報含4個整數n,a,b,c(1<=n,a,b,c<=4000)

output

每組資料輸出能分得辣條的小朋友數量,每組輸出佔一行

sample input 1 

5 5 3 2

sample output 1

2

sample input 2 

7 5 5 2

sample output 2

2

source

2015級計科納新考試

#include#define max 5005

#define inf 0x3f3f3f3f

using

namespace

std;

typedef

long

long

ll;int a[5

];int

dp[max];

intmain()

memset(dp,-inf,sizeof

(dp));

dp[0]=0

;

for(i=1;i<=3;i++)

}printf(

"%d\n

",dp[n]);

}return0;

}

QDUOJ 93 分辣條 01揹包

描述 你喝的酸奶是我買的,辣條也是我買的,你現在要跟我分手,你把我當什麼?因為你每次分辣條的時候都比我多一根!可見分好辣條是一件多麼重要的事情。現在有n 1 n 200 根辣條,每根辣條的重量為a1,a2 ai.an 1 ai 100 那麼能不能把這些辣條分為重量相等的兩份呢?輸入 輸入有多組資料。...

01揹包的變形問題 揹包恰好裝滿

在看本文之前建議先看一下我之前發過的01揹包詳解。在前面講到的01揹包問題中,現在我們把條件改為 求當揹包恰好裝滿時候取得的最大價值 這樣的問題其實本質上和原始的01揹包問題區別不大,我們只需要做出一點小小的調整。需要指出的是該問題其實可分為兩個問題。1 揹包能否恰好裝滿?2 如果能恰好裝滿,恰好裝...

01揹包變式 要求恰好裝滿的01揹包

ktv裡面有n首歌曲你可以選擇,每首歌曲的時長都給出了.對於每首歌曲,你最多只能唱1遍.現在給你乙個時間限制t t 10 9 問你在最多t 1秒的時間內可以唱多少首歌曲num 且最長唱歌時間是多少time time必須 t 1 最終輸出num 1 和 time 678 即可.注意 你需要優先讓歌曲數...