bzoj1097 旅遊景點atr

2022-03-06 19:42:45 字數 1757 閱讀 4362

fgd想從成都去上海旅遊。在旅途中他希望經過一些城市並在那裡欣賞風景,品嚐風味小吃或者做其他的有趣的事情。經過這些城市的順序不是完全隨意的,比如說fgd不希望在剛吃過一頓大餐之後立刻去下乙個城市登山,而是希望去另外什麼地方喝下午茶。幸運的是,fgd的旅程不是既定的,他可以在某些旅行方案之間進行選擇。由於fgd非常討厭乘車的顛簸,他希望在滿足他的要求的情況下,旅行的距離盡量短,這樣他就有足夠的精力來欣賞風景或者是泡mm了_.整個城市交通網路包含n個城市以及城市與城市之間的雙向道路m條。城市自1至n依次編號,道路亦然。沒有從某個城市直接到它自己的道路,兩個城市之間最多只有一條道路直接相連,但可以有多條連線兩個城市的路徑。任意兩條道路如果相遇,則相遇點也必然是這n個城市之一,在中途,由於修建了立交橋和下穿隧道,道路是不會相交的。每條道路都有乙個固定長度。在中途,fgd想要經過k(k<=n-2)個城市。成都編號為1,上海編號為n,而fgd想要經過的n個城市編號依次為2,3,…,k+1.舉例來說,假設交通網路如下圖。fgd想要經過城市2,3,4,5,並且在2停留的時候在3之前,而在4,5停留的時候在3之後。那麼最短的旅行方案是1-2-4-3-4-5-8,總長度為19。注意fgd為從城市2到城市4可以路過城市3,但不在城市3停留。這樣就不違反fgd的要求了。並且由於fgd想要走最短的路徑,因此這個方案正是fgd需要的。

第一行包含3個整數n(2<=n<=20000),m(1<=m<=200000),k(0<=k<=20),意義如上所述。

只包含一行,包含乙個整數,表示最短的旅行距離。

上面對應於題目中給出的例子。

一道典型的狀壓\(dp\),先跑一邊\(dijkstra\),再狀壓一下

#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int n=25000,m=500000,k=35;

int n,m,k,pr[k],dp[1100000][k];

struct edge

e[m];

int ne,hd[n],p1[k],p2[k];

void build(int u,int v,int w)

,hd[u]=ne;

}void read()

}const int inf=0x3f3f3f3f;

typedef pairpa;

priority_queue,greater> q;

int v[n],d[k][n];

void dijkstra(int s) }}

void bit_dp()

{ for(int i=0;i<=(1推薦博文bzoj1097: [poi2007]旅遊景點atr

BZOJ 1097 旅遊景點atr

fgd想從成都去上海旅遊。在旅途中他希望經過一些城市並在那裡欣賞風景,品嚐風味小吃或者做其他的有趣的事情。經過這些城市的順序不是完全隨意的,比如說fgd不希望在剛吃過一頓大餐之後立刻去下乙個城市登山,而是希望去另外什麼地方喝下午茶。幸運的是,fgd的旅程不是既定的,他可以在某些旅行方案之間進行選擇。...

bzoj1097 POI2007 旅遊景點atr

description fgd想從成都去上海旅遊。在旅途中他希望經過一些城市並在那裡欣賞風景,品嚐風味小吃或者做其他的有趣 的事情。經過這些城市的順序不是完全隨意的,比如說fgd不希望在剛吃過一頓大餐之後立刻去下乙個城市登山,而是希望去另外什麼地方喝下午茶。幸運的是,fgd的旅程不是既定的,他可以在...

楊柳青旅遊景點 天津西青旅遊景點精選推薦

天津西青旅遊發展很快,從乙個遊客的認知感覺應該是這幾個區里較快的,而且每乙個在天津都是亮點,用當下的話來說,都是網紅熱點,在網上各大平台也都有推薦,而且只要提前購票都會有優惠,有時各個 平台都做些 啊補貼呀,實惠多些要提早預定能遇到,當天不一定有,這樣很好,十分適合提前計畫出行,能得到 上的獎勵優待...