這個題直接爆搜顯然很好想,但是直接爆搜而不剪枝的話最壞複雜度應該是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 張。再...