昨天吧揹包九講中最基礎的01揹包看完,做了2602。結果晚上比賽相同題目卻做不出。。苦想幾個小時。。。
解題思路:要使剩餘錢最少,應該留下塊錢買最貴的東西(標記為t)(注意金額m<5 的情況!!) 接下來就是用剩下的m-5元買除t以外的菜。每種菜只能買一次。就構成揹包問題。
**:[cpp]
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
} scanf("%d",&m);
if(m<5)
for(i=1;i<=n;i++)
} printf("%d\n",m-v[m-5]-ma);
} return 0;
} 作者:cxb569262726
HDU 2546 飯卡(01揹包) 解題報告
昨天吧揹包九講中最基礎的01揹包看完,做了2602。結果晚上比賽相同題目卻做不出。苦想幾個小時。解題思路 要使剩餘錢最少,應該留下塊錢買最貴的東西 標記為t 注意金額m 5 的情況!接下來就是用剩下的m 5元買除t以外的菜。每種菜只能買一次。就構成揹包問題。include include inclu...
HDU2546 飯卡 01揹包
problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...
HDU 2546 飯卡 01揹包
我的做法是找出n種菜中最貴的 k,把揹包的容量m增加的到m k 然後對 排個序,因為dp是從第乙個菜到最後乙個菜,越貴的菜越後選結果越小,然後進行dp include include include include using namespace std const int maxn 1010 in...