【問題描述】
過年的時候,大人們最喜歡的活動,就是打牌了。xiaomengxian不會打牌,只好坐在一邊看著。
這天,正當一群人打牌打得起勁的時候,突然有人喊道:「這副牌少了幾張!」眾人一數,果然是少了。於是這副牌的主人得意地說:「這是一幅特製的牌,我知道整副牌每一張的重量。只要我們稱一下剩下的牌的總重量,就能知道少了哪些牌了。」大家都覺得這個辦法不錯,於是稱出剩下的牌的總重量,開始計算少了哪些牌。由於資料量比較大,過了不久,大家都算得頭暈了。
這時,xiaomengxian大聲說:「你們看我的吧!」於是他拿出膝上型電腦,編出了乙個程式,很快就把缺少的牌找了出來。
如果是你遇到了這樣的情況呢?你能辦到同樣的事情嗎?
【輸入檔案】
第一行乙個整數totalw,表示剩下的牌的總重量。
第二行乙個整數n(1#include#include#include#include#define n 1000000
using namespace std;
int w[105],dp[10005],vis[105],par[10005];
//w陣列記錄紙牌重量,vis陣列用來記錄該紙牌的使用情況,par陣列作用是記錄到達某一重量的路徑
int main()
memset(dp,0,sizeof(dp));
dp[0]=1; //初始化
for (i=1;i<=n;i++)
for (j=weight;j>=w[i];j--)
if (dp[j-w[i]])
else
dp[j]=-1; //說明到達j的情況不止一種
}else if (dp[j-w[i]]==-1) //既然不能到達j-w[i]=0的情況,那麼遞推回去也是一樣
dp[j]=-1;
if (!dp[weight]||dp[weight]==-1)
int s=weight;
while (s)
for (i=1;i<=n;i++)
if (!vis[i])
printf("%d ",i);
return 0;
}
新年趣事之打牌
新年趣事之打牌 問題描述 過年的時候,大人們最喜歡的活動,就是打牌了。xiaomengxian不會打牌,只好坐在一邊看著。這天,正當一群人打牌打得起勁的時候,突然有人喊道 這副牌少了幾張!眾人一數,果然是少了。於是這副牌的主人得意地說 這是一幅特製的牌,我知道整副牌每一張的重量。只要我們稱一下剩下的...
新年趣事之打牌 DP
新年趣事之打牌 輸入檔案 bagb.in 輸出檔案 bagb.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 題目描述 過年的時候,大人們最喜歡的活動,就是打牌了。xiaomengxian不會打牌,只好坐在一邊看著。這天,正當一群人打牌打得起勁的時候,突然有人喊道 這副牌少了幾張!眾人...
動態規劃 新年趣事之打牌
問題 問題描述 過年的時候,大人們最喜歡的活動,就是打牌了。xiaomengxian不會打牌,只好坐在一邊看著。這天,正當一群人打牌打得起勁的時候,突然有人喊道 這副牌少了幾張!眾人一數,果然是少了。於是這副牌的主人得意地說 這是一幅特製的牌,我知道整副牌每一張的重量。只要我們稱一下剩下的牌的總重量...