洛谷P2340 奶牛會展

2022-05-05 21:12:11 字數 900 閱讀 4159

# $奶牛會展$

題目鏈結

由於智商之和或情商之和不能為負數,所以直接把智商+情商》0的奶牛加上是布星的

我們考慮揹包,不妨將智商當做物品大小,將情商當做價值

我們要求 大小+價值 的最大值

\(dp[j]\)表示智商為\(j\)時情商的最大值

當智商為負數時,\(dp[j]\)是會**的,所以我們用\(dp[j+400040]\)存\(dp[j]\)

我們要跑\(01\)揹包,但是滾動陣列滾的順序是需要注意的

當\(i\)的智商\(a[i]>0\)時,要\(j\)從大到小列舉,防止乙個物品選多次

而當\(i\)的智商\(a[i]<0\)時,\(j\)從小到大列舉

**:

#include#include#includeusing namespace std;

int n,a[410],b[410];

int d=400040,ans;

int dp[800100],maxm,minm;

int main()

for(int i=1;i<=n;i++)

if(a[i]>=0)

for(int j=maxm;j>=minm;j--)

dp[j+d]=max(dp[j+d],dp[j+d-a[i]]+b[i]);

else

for(int j=minm;j<=maxm;j++)

dp[j+d]=max(dp[j+d],dp[j+d-a[i]]+b[i]);

for(int i=d;i<=maxm+d;i++)

if(dp[i]>=0)

ans=max(ans,i-d+dp[i]);

printf("%d\n",ans);

return 0;

}

洛谷P2340 奶牛會展

題目背景 奶牛想證明它們是聰明而風趣的。為此,貝西籌備了乙個奶牛博覽會,她已經對n 頭奶牛進行 了面試,確定了每頭奶牛的智商和情商。題目描述 貝西有權選擇讓哪些奶牛參加展覽。由於負的智商或情商會造成負面效果,所以貝西不希望出展奶牛的智商之和小於零,或情商之和小於零。滿足這兩個條件下,她希望出展奶牛的...

P2340 奶牛會展

f i 表示當 智商為i 時,情商 最高為多 少f i 表示當智商為i時,情商最高為多少 f i 表示 當智商為 i時,情 商最高為 多少具體類似講解請移步我的另一篇部落格 include define rep i,a,b for register int i a i b i define don ...

P2340 奶牛會展(狀壓dp)

奶牛想證明它們是聰明而風趣的。為此,貝西籌備了乙個奶牛博覽會,她已經對n 頭奶牛進行 了面試,確定了每頭奶牛的智商和情商。貝西有權選擇讓哪些奶牛參加展覽。由於負的智商或情商會造成負面效果,所以貝西不希望出展奶牛的智商之和小於零,或情商之和小於零。滿足這兩個條件下,她希望出展奶牛的智商與情商之和越大越...