新年趣事之打牌

2021-07-11 15:13:27 字數 1055 閱讀 2123

【問題描述】

過年的時候,大人們最喜歡的活動,就是打牌了。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不會打牌,只好坐在一邊看著。這天,正當一群人打牌打得起勁的時候,突然有人喊道 這副牌少了幾張!眾人一數,果然是少了。於是這副牌的主人得意地說 這是一幅特製的牌,我知道整副牌每一張的重量。只要我們稱一下剩下的牌的總重量...