中文題,題意就不多說了,講講思路吧,先根據題意構圖,與普通最短路不同的是這一題加了乙個rank,每個點都有乙個rank,題目要求最短路徑上的點的rank的最大差值在
m範圍內,dijkstra判斷條件時加上rank約束就行了。我沒有新增匯點直接寫的,另貼上別人新增匯點的寫法。
我的**:
#include #include #include #include #include #include #include #include #include #include #include #pragma comment (linker,"/stack:102400000,102400000")
#define maxn 1005
#define maxn 2005
#define mod 1000000009
#define inf 0x3f3f3f3f
#define pi acos(-1.0)
#define eps 1e-6
typedef long long ll;
using namespace std;
int mp[110][110];
int visit[110],dist[110],selfcost[110],rank[110];
int m,n;
int dijkstra(int s,int e)
}int minn=inf;
for (i=1;i<=n;i++)
vis[k]=1;
if(k==1)
return;
for(i=0;i<=n;i++)
if( dengji[i]>=m && dengji[i]<=n && !vis[i] && dis[i]>dis[k]+map[k][i])
}}int main()
}for( i=dengji[1]-m; i<=dengji[1]; i++)
cout<
poj 1062 昂貴的聘禮
這個題是乙個簡單的樹形dp,只是有乙個地位差限制,可以列舉可行區間,在可行區間裡進行dp.include include include include include include include include include include includeusing namespace st...
poj1062 昂貴的聘禮
做這題代價確實很昂貴,從昨天晚上一直到今天上午都在debug,今天上午提交還出現各種wa。比較明顯的最短路,有幾個地方要注意一下,首先建圖有個地方要注意以下,這題是用臨界矩陣儲存的有向圖,而且是由交換品指向購買品,然後將虛節點設為購買品的價值,最後列舉每乙個可能地位區間di求最短路,因為對於區間 c...
昂貴的聘禮(POJ1062)
這個玩了好久啊,是我第一次寫出這樣的最短路徑。還是參考了其它人的才出來,注意的有 1 是單向圖,2 把不滿足權值的提前全初始化。其實不用topo排序也可的。關鍵 void dfs int k include include include include include include includ...