Luogu P1137 旅行計畫

2022-03-16 19:58:07 字數 672 閱讀 6494

可以發現,因為只能往東邊走,並且有入度為$0$的起點,因此這是乙個有向無環圖,可以進行拓撲排序,求出拓撲序列。

那麼我們要拓撲序列怎麼做呢?由於拓撲序列中,前面的點總是後面的點的前驅,因此可以進行dp。

而dp的狀態轉移方程也很明顯,這個城市只能由前面的城市轉移過來,因此有方程:$$dis[v]=max(dis[v],dis[u]+1)$$

#include#define n 100010

#define m 200010

using namespace std;

int n,m,cnt;

int deg[n],head[n],dis[n];

struct node edge[m];

void addedge(int u,int v) ;

head[u]=cnt;

deg[v]++;

return;

}void read()

return;

}void init()

return;

}void topo()

} while(!q.empty())

} }return;

}void print()

return;

}int main()

Luogu P1137 旅行計畫

小明要去乙個國家旅遊。這個國家有n個城市,編號為1 n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多。現在,你...

luoguP1137旅行計畫

小明要去乙個國家旅遊。這個國家有n個城市,編號為1至n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多。現在,你...

P1137 旅行計畫

題目描述 小明要去乙個國家旅遊。這個國家有n個城市,編號為1 n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多...