題意:
這是乙個經典的01揹包問題,但此問題處理起來卻需要小技巧,對我來說算是比較新穎,需要加乙個限制,那就是餘額要大於等於5,要注意的是這裡只要剩餘的錢不低於5元,就可以購買任何一件物品,所以5在這道題中是很特殊的,在使用01揹包之前,我們首先要在現在所擁有的餘額中保留5元,用這五元去購買最貴的物品(此處預設最貴的比5元貴了),而剩下的錢就是揹包的總容量,可以隨意使用!
**:#include #include #include #include #include #include #include #include #include #include #include #include #define maxn 15
#define maxn 100005
#define mod 1000000007
#define inf 0x3f3f3f3f
#define exp 1e-6
#define pi acos(-1.0)
using namespace std;
int main()
sort(price+1,price+n+1);
max1=price[n]; //找出**最大的那個,用五元錢去買,剩餘的就是01揹包問題
cin>>m;
if(m<5)
cout<
飯卡(01揹包)
a 飯卡 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2546 description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個...
飯卡(01揹包)
電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少...
飯卡(0 1揹包)
科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少可使...