好吧,我承認我是被室友坑了,突然在寢室討論起這個,從晚上9點多一直搞到了現在,才搞完+_+,不是徹底,但是搞定了大部分的問題
1,4硬幣稱重問題
2,8硬幣稱重問題
3,12硬幣稱重問題
傳送門:關於問題的解
12硬幣問題及解:
12個硬幣不知輕重如何用三次稱出來?
解法:(要看挺久才能明白)
傳送門:
解法傳送門
**實現:(都聚在一起了)
8枚硬幣的沒寫,因為跟4枚硬幣差不多,注意幾個程式我是隔開的
//硬幣稱重問題求解
//不知輕重型別,模擬第四塊為最不合格的那塊硬幣
// author:seen
// time:2015-09-20
// 比較精彩的地方在於判斷輕重
//4枚硬幣不知道輕重
#include
using
namespace
std;void main(); if(num[1]+num[2]>num[3]+num[4]) else
if(num[3]4])cout
<3]; else } else else
if(num[1]2])cout
<1]; else }}//12枚硬幣判重問題,有一枚偏重
#include
using
namespace
std;void main(); if(num[1]+num[2]+num[3]+num[4]+num[5]==num[6]+num[7]+num[8]+num[9]+num[10]) else
cout
<12]; } else
if(num[1]+num[2]+num[3]+num[4]+num[5]6]+num[7]+num[8]+num[9]+num[10]) else
if(num[6]+num[7]==num[8]+num[9]) else } else else
if(num[1]+num[2]3]+num[4]) else
cout
<5]; }}//12枚硬幣判重問題,有一枚不知道輕重
#include
using
namespace
std;void main(); if(num[1]+num[2]+num[3]+num[4]==num[5]+num[6]+num[7]+num[8]) else
if(num[1]+num[9]10]+num[11]) else } else
if(num[1]+num[2]+num[3]+num[4]5]+num[6]+num[7]+num[8]) else
if(num[1]+num[2]+num[5]3]+num[6]+num[9]) else } else else
if(num[1]+num[2]+num[5]>num[3]+num[6]+num[9]) else }}
好吧,我承認我是被室友坑了,突然在寢室討論起這個,從晚上9點多一直搞到了現在,才搞完+_+,不是徹底,但是搞定了大部分的問題
1,4硬幣稱重問題
2,8硬幣稱重問題
3,12硬幣稱重問題
傳送門:關於問題的解
12硬幣問題及解:
12個硬幣不知輕重如何用三次稱出來?
解法:(要看挺久才能明白)
傳送門:
解法傳送門
**實現:(都聚在一起了)
8枚硬幣的沒寫,因為跟4枚硬幣差不多,注意幾個程式我是隔開的
//硬幣稱重問題求解
//不知輕重型別,模擬第四塊為最不合格的那塊硬幣
// author:seen
// time:2015-09-20
// 比較精彩的地方在於判斷輕重
//4枚硬幣不知道輕重
#include
using
namespace
std;void main(); if(num[1]+num[2]>num[3]+num[4]) else
if(num[3]4])cout
<3]; else } else else
if(num[1]2])cout
<1]; else }}//12枚硬幣判重問題,有一枚偏重
#include
using
namespace
std;void main(); if(num[1]+num[2]+num[3]+num[4]+num[5]==num[6]+num[7]+num[8]+num[9]+num[10]) else
cout
<12]; } else
if(num[1]+num[2]+num[3]+num[4]+num[5]6]+num[7]+num[8]+num[9]+num[10]) else
if(num[6]+num[7]==num[8]+num[9]) else } else else
if(num[1]+num[2]3]+num[4]) else
cout
<5]; }}//12枚硬幣判重問題,有一枚不知道輕重
#include
using
namespace
std;void main(); if(num[1]+num[2]+num[3]+num[4]==num[5]+num[6]+num[7]+num[8]) else
if(num[1]+num[9]10]+num[11]) else } else
if(num[1]+num[2]+num[3]+num[4]5]+num[6]+num[7]+num[8]) else
if(num[1]+num[2]+num[5]3]+num[6]+num[9]) else } else else
if(num[1]+num[2]+num[5]>num[3]+num[6]+num[9]) else }}
硬幣問題 《演算法入門經典》
分析 典型的固定起始點的dag最長路最短路問題。起點為s,終點為0,只是注意一些細節。1 輸出答案。2 是否能走到0 include include include define maxn 100009 define inf 0x3f3f3f3f using namespace std int v ...
程式設計 貪心演算法解決硬幣問題
問題描述 有1元 5元 10元 50元 100元 500元的硬幣各c1,c5,c10,c50,c100,c500枚。現在要用這些硬幣來支付a元,最少需要多少枚硬幣?假設本題至少存在一種支付方案。限制條件 0 c1,c5,c10,c50,c100,c500 10的9次方 0 a 10的9次方 輸入 c...
貪心演算法經典問題 硬幣找零
這是乙個用最少硬幣支付指定額度的問題。一 問題描述 如下圖圖一,設有6種不同面值的硬幣,各硬幣的面值分別為5分 1角 2角 5角 1元 2元。現要用這些面值的硬幣來購物和找錢。購物時規定了可以使用的各種面值的硬幣個數。假定商店裡各面值的硬幣足夠多,顧客也可用多種方式支付,在一次購物中希望使用最少硬幣...