codevs 1324 昂貴的聘禮

2021-08-08 22:18:32 字數 967 閱讀 5771

去題面的傳送門

一道比較神奇的最短路問題

注意建邊的方式:

比如要得到x,需要y和z金幣,那麼由y指向x的一條有向邊,邊權是z

但是我們的每一種物品都可以直接用金幣來換,所以我們建乙個超級點,連向所有的節點,邊權是這個物品的金幣數

當然,還要有等級的限制:

首先,我們經過的節不能有高於酋長等級的,其次,與酋長的等級差不能超過m

但是我們並不知道酋長的等級是什麼,所以我們還要列舉等級

最後,每乙個等級,都從超級點出發,跑到1號點的最短路

注意是有向邊

**:

#include

#include

#include

#include

#include

using

namespace

std;

queue

q;const

int maxn=1000;

int fist[maxn],nxt[maxn<<1],level[maxn],dis[maxn];

bool vis[maxn];

int ans,cnt,n,m;

struct hh

e[maxn<<1];

void init()

void build(int f,int t,int v)

; nxt[cnt]=fist[f];

fist[f]=cnt;

}int spfa(int king)}}

}return dis[1];

}int main()

}for(int i=1;iif(!ans) ans=spfa(level[i]);

else ans=min(ans,spfa(level[i]));

}printf("%d\n",ans);

}return

0;}

codevs 1324 昂貴的聘禮

前往原題 時間限制 1 s 空間限制 64000 kb 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000...

ZJOI 1324 昂貴的聘禮 SPFA

題目描述 description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他...

昂貴的聘禮

時間限制 1000 ms 記憶體限制 10000 kb 難度 4 描述 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我...