題意:
給出電站之間的路徑長度和每個電站的電量,需要派出坦克去攻占電站,以控制多一半的電量(要比一半多,因為這個wa了一次),問最少走多少路徑,坦克數量足夠多,乙個坦克只能控制乙個電站。
思路:用floyd求出起點(0點)到所有電站的距離,當做揹包物品的價值,然後以每個電站的發電量作為揹包物品的容量,進行01揹包。
然後找出揹包容量在sumpow/2+1到10000(最大電量之和)的最小權值(路徑總長)即為答案,若無,輸出possible。
如果用路徑長度當做物體體積,那麼揹包總容量太大了,這樣做不合適。
**:#include #include #include using namespace std;
const int n=105;
const int maxv=10000;
const int inf=0x3f3f3f3f;
void work()
memset(f,0x3f,sizeof(f));
f[0]=0;
for(i=1;i<=n;i++)
if(dist[0][i]=v[i];j--)
if(f[j]>f[j-v[i]]+dist[0][i])
f[j]=f[j-v[i]]+dist[0][i];
ans=inf;
for(i=sum/2+1;i<=maxv;i++)
if(f[i]
HDU 3339 最短路 揹包問題
hdu 3339 mike w 2012 4 14 include include include define max size 128 define q size 256 define total dist max max size max size 100 define inf 9999999...
D 和諧(最短路 01揹包)
自1945年以來,當美國的曼哈頓專案小組引爆了第一顆核彈時,全球的核 數量急劇增加。如今,fzu的乙個名叫aekdycoin的瘋狂男孩擁有核 想要毀滅我們的世界。幸運的是,我們神秘的間諜網路已經得到了他的計畫。現在,我們需要阻止它。但這項艱鉅的任務顯然並不容易。首先,我們知道,核 的作業系統由一些連...
Present 神奇 揹包 最短路
先設 p1p 1 表示最小的 pp 當 pxp x 使用了 p1p 1 次時,可以用 pxp x 次 p1p 1 替代,舉個例子,假如當前選物品的情況是 i 2n p 1 1 pii 2 n p1 1 p i 此時只要在 x 2,n x 2 n 中再選出任意乙個物品 pxp x 則 p1p 1 個p...