codevs1005 生日禮物

2022-05-20 06:01:12 字數 783 閱讀 4064

這個題直接爆搜顯然很好想,但是直接爆搜而不剪枝的話最壞複雜度應該是6^10*10,顯然會**。開始我並沒有想到怎麼剪枝,因此只拿了80,看過題解後恍然大悟:我們可以提前處理好第i種本子之後所有的本子每種紙最多還能用多少,搜尋的時候,如果發現某種顏色的紙,就算之後所有的該種顏色的紙全部用上都無法超越現在的最大值,則退出

#include#include

#include

using

namespace

std;

inline

void re(int &a)

int n,m,s[20],ben,sum[12][12],a[12][12],bi[12],cun[20],ans=1000

;void dfs(int tot,int ceng)//

tot記錄買了多少個本子,ceng記錄現在判斷到第幾種本子了

}if(flag==0

)

if(tot==ben||ceng==n)

return

;

int mx=0

;

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

mx=max(mx,s[i]);

for(int i=1;i<=m;i++)//

如果我們發現,就算把下面的所有本子都買了,也不能追上現在的最大值,直接停止

for(int i=0;i<=bi[ceng+1];i++)//

列舉這種本子買幾個

}int

main()

codevs1005 生日禮物

時間限制 1 s 空間限制 128000 kb 題目等級 gold 輸入描述 input description 輸入的第一行包含2個整數n 1 n 8 m 1 m 10 表示有n種不同型別的本子和m種小寒喜歡的顏色。接下來乙個n m的矩陣。第i行第j列的整數aij表示在第i種型別的本子中包含小寒喜...

Codevs 1005 生日禮物

時間限制 1 s 空間限制 128000 kb 題目等級 gold 輸入描述 input description 輸入的第一行包含2個整數n 1 n 8 m 1 m 10 表示有n種不同型別的本子和m種小寒喜歡的顏色。接下來乙個n m的矩陣。第i行第j列的整數aij表示在第i種型別的本子中包含小寒喜...

codevs 1005 生日禮物 題解報告

繼續我的刷題之路 輸入描述 input description 輸入的第一行包含2個整數n 1 n 8 m 1 m 10 表示有n種不同型別的本子和m種小寒喜歡的顏色。接下來乙個n m的矩陣。第i行第j列的整數aij表示在第i種型別的本子中包含小寒喜歡的顏色j的紙有aij 1 aij 100 張。再...