CODEVS——T 1005 生日礼物
http://codevs.cn/problem/1005/
?時(shí)間限制: 1 s ?空間限制: 128000 KB ?題目等級(jí) : 黃金 Gold 題解 題目描述?Description?????? 9月12日是小松的朋友小寒的生日。小松知道小寒特別喜歡蝴蝶,所以決定折蝴蝶作為給小寒的生日禮物。他來(lái)到了PK大學(xué)最大的一家地下超市,在超市里,小松找到了n種可以用來(lái)折紙的本子。每種類型的本子里有若干不同顏色的紙若干張,當(dāng)然同種類型的本子一定是完全一樣的,而不同種類型的本子不一定完全不一樣。他統(tǒng)計(jì)了一下,這里總共有n種不同類型的可以用來(lái)折紙的本子,每種本子各有bi本,所有的紙中有m種顏色是小寒所喜歡的顏色。小松希望他折的每種顏色的蝴蝶的數(shù)目是一樣的。換句話說(shuō),小松必須折m*k只蝴蝶,其中k代表每種顏色蝴蝶的數(shù)目,這個(gè)數(shù)由小松自己來(lái)決定。但是小松又不能浪費(fèi)紙,也就是說(shuō)他買的本子中,只要是小寒喜歡的顏色的紙都要被折成蝴蝶。于是問(wèn)題來(lái)了,每種類型的本子應(yīng)該各買多少本,才能折出這m*k只蝴蝶呢?當(dāng)然,由于小松是個(gè)很懶的人,他希望折的蝴蝶數(shù)目越少越好,只要表達(dá)了心意就可以了(也就是不能1只也不折)。而如果小松總共必須折1000只以上的蝴蝶才能滿足要求,那么他就寧愿換一種禮物的方案了。
輸入描述?Input Description? ? ? ?輸入的第一行包含2個(gè)整數(shù)n(1≤n≤8),m(1≤m≤10)。表示有n種不同類型的本子和m種小寒喜歡的顏色。接下來(lái)一個(gè)n*m的矩陣。第i行第j列的整數(shù)aij表示在第i種類型的本子中包含小寒喜歡的顏色j的紙有aij(1≤aij≤100)張。再接下來(lái)的一排n個(gè)整數(shù)b1到bn,表示每種顏色的本子在超市中有多少本(1≤bi≤5)。
輸出描述?Output Description? ? ? ?輸出包含一個(gè)整數(shù),表示小松最少需要折的蝴蝶數(shù)目,如果該數(shù)目超過(guò)1000,則輸出”alternative!”。(由于可能存在多種買本子的方案,所以這里就不要求輸出具體方案了)
樣例輸入?Sample Input2 3
2 1 2
4 8 4
5 5
樣例輸出?Sample Output36
數(shù)據(jù)范圍及提示?Data Size & Hint?
1 #include <cstdio> 2 3 int n,m,ans=1<<30; 4 int a[26][26],b[26],sum[26]; 5 6 bool check() 7 { 8 for(int i=1;i<m;i++) 9 if(sum[i]!=sum[i+1]) 10 return false; 11 return true; 12 } 13 void DFS(int now) 14 { 15 // if(ans!=(1<<30)) return ; 16 for(int i=0;i<=b[now];i++) 17 { 18 for(int j=1;j<=m;j++) 19 sum[j]+=a[now][j]*i; 20 if(now<n) DFS(now+1); 21 else 22 { 23 if(check()) 24 { 25 if(sum[1]>0&&sum[1]*m<ans) 26 ans=sum[1]*m; 27 } 28 } 29 for(int j=1;j<=m;j++) 30 sum[j]-=a[now][j]*i; 31 } 32 } 33 34 int main() 35 { 36 scanf("%d%d",&n,&m); 37 for(int i=1;i<=n;i++) 38 for(int j=1;j<=m;j++) 39 scanf("%d",&a[i][j]); 40 for(int i=1;i<=n;i++) scanf("%d",b+i); 41 DFS(1); 42 if(ans<=1000) printf("%d\n",ans); 43 else printf("alternative!"); 44 return 0; 45 }?
轉(zhuǎn)載于:https://www.cnblogs.com/Shy-key/p/7466869.html
總結(jié)
以上是生活随笔為你收集整理的CODEVS——T 1005 生日礼物的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【正点原子FPGA连载】第三十五章高速A
- 下一篇: 深度优先和广度优先的区别 笔记