f題倒過來單向給陣列賦值,如money[4][3]表示有了4物品得到3物品需要給的金錢,0為超級起點,money[0][1]表示直接得到1物品需要的金錢,圖構建好了,我也是用floyd演算法直接計算得到1物品需要的最少金錢。但是我除錯了很多次也沒找出來**錯了。
#include
#include
#include
#include
#define inf 9999999
using namespace std;
struct goods
a[105];
int main()
}for(i=1;i<=allnum;i++)
}for(i=allnum;i>0;i--)}}
for(i=0,j=1;j<=allnum;j++)
for(k=0;k<=allnum;k++)}}
printf("%d\n",money[0][1]);
return 0;
}用floyd暫時還沒有寫出來,但是仿照著別人的dij演算法把這道題做了主要欠考慮的地方是等級範圍,應該是(k-m,k),中間只應該有m個數,而不是(k-m,k+m)
#include //dij演算法昂貴的聘禮
#include
#include
#define inf 0x7f7f7f7f
#define maxn 1005
using namespace std;
int dis[maxn];
bool vis[maxn];
int money[maxn][maxn];
int limit,allnum,charge,num,price[maxn],level[maxn],rep[maxn];
void init()
int dij()
vis[x]=true;
for(int j=1;j<=allnum;j++)
}return dis[1];
}int main()
money[0][i]=price[i];
}int ans=inf;
for(int i=1;i<=allnum;i++)
int now=dij();
ans=min(now,ans);
}printf("%d\n",ans);
}return 0;
}
昂貴的聘禮
時間限制 1000 ms 記憶體限制 10000 kb 難度 4 描述 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我...
昂貴的聘禮
description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水晶球,...
昂貴的聘禮
年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水晶球,那麼只要5000金幣就行...