有三个注意点:
1、酋长的地位不一定是最高的;
2、这是有向图而不是双向图;
3、酋长的地位等级为R,从酋长开始,经过的人的地位等级必在[R-m,R+m]之中,而且经过的人的地位等级的区间长度也为m。
本题可以用枚举法+dijkstra做。
#include#include #include #include #include #define Min(a,b) a b a:b #define INF 999999999 #define M 105 using namespace std; struct Point { int price; int rank; }; struct Point p[M]; int map[M][M]; bool visit[M]; int dis[M]; int m,n; void init() { int i,j; for(i=0;i b) visit[i]=true; } dis[1]=0; for(i=1;i