3876 Ahoi2014 支線劇情

2021-08-03 08:34:50 字數 1826 閱讀 3531

time limit: 10 sec  

memory limit: 256 mb

submit: 1750  

solved: 1061 [

submit][

status][

discuss]

【故事背景】

宅男jyy非常喜歡玩rpg遊戲,比如仙劍,軒轅劍等等。不過jyy喜歡的並不是戰鬥場景,而是類似電視劇集一般的充滿恩怨情仇的劇情。這些遊戲往往

都有很多的支線劇情,現在jyy想花費最少的時間看完所有的支線劇情。

【問題描述】

jyy現在所玩的rpg遊戲中,一共有n個劇情點,由1到n編號,第i個劇情點可以根據jyy的不同的選擇,而經過不同的支線劇情,前往ki種不同的新的劇情點。當然如果為0,則說明i號劇情點是遊戲的乙個結局了。

jyy**乙個支線劇情需要一定的時間。jyy一開始處在1號劇情點,也就是遊戲的開始。顯然任何乙個劇情點都是從1號劇情點可達的。此外,隨著遊戲的進行,劇情是不可逆的。所以遊戲保證從任意劇情點出發,都不能再回到這個劇情點。由於jyy過度使用修改器,導致遊戲的「存檔」和「讀檔」功能損壞了,

所以jyy要想回到之前的劇情點,唯一的方法就是退出當前遊戲,並開始新的遊戲,也就是回到1號劇情點。jyy可以在任何時刻退出遊戲並重新開始。不斷開始新的遊戲重複**已經看過的劇情是很痛苦,jyy希望花費最少的時間,看完所有不同的支線劇情。

輸入一行包含乙個正整數n。

接下來n行,第i行為i號劇情點的資訊;

第乙個整數為,接下來個整數對,bij和tij,表示從劇情點i可以前往劇

情點,並且**這段支線劇情需要花費的時間。

輸出一行包含乙個整數,表示jyy看完所有支線劇情所需要的最少時間。

62 2 1 3 2

2 4 3 5 4

2 5 5 6 600

024題解:

這是乙個「無源匯,有上下界,最小費用可行流」問題。

連線一篇blog

其實,這個圖也不難建,但我太菜了。

所以還是模了題解。

add(st,y,1,z)表示至少經過一次

add(x,y,inf,z)隨便經過(自由流)

add(x,1,inf,0)回到1點

add(x,ed,inf,0)隨時停止。

然後跑一遍費用流就好了

大概就是這樣。

#include#include#include#include#define inf 0x7fffffff

using namespace std;

const int m=500;

int n;

struct nodesa[1001001];int len=0,first[m];

int c[m],f[m],st,ed;

void ins(int x,int y,int z,int w)

char map[m][m];

int pre[m],dis[m],frpe[m],vis[m];

bool spfa()

pre[y]=x;

frpe[y]=i;}}

}if(dis[ed]>=inf) return false;

return true;

}void mcmf()

ans+=minl*dis[ed];

for(int i=ed;i!=st;i=pre[i])

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

}int main()

if(i!=1)

ins(i,1,inf,0);

ins(i,ed,x,0);

} //printf("!");

mcmf();

}

BZOJ3876 AHOI2014支線劇情

思路 就是每條邊要經過最少一次咯,直接上下界網路流把下屆設定成1即可,當然一些關於類似匯點的處理方法細節就寫著 裡了。詳細的可以看別人的。貌似直接每條邊的流量下界設定成1,直接跑最小費用最大流?好像沒有乙個明確的匯點 假設增加乙個匯點的話 那麼結局點要向匯點連多少的邊?索性不要匯點 直接每個點向源點...

Bzoj3876 Ahoi2014 支線劇情

time limit 10 sec memory limit 256 mb submit 1686 solved 1031 故事背景 宅男jyy非常喜歡玩rpg遊戲,比如仙劍,軒轅劍等等。不過jyy喜歡的並不是戰鬥場景,而是類似電視劇集一般的充滿恩怨情仇的劇情。這些遊戲往往 都有很多的支線劇情,現在...

AHOI2014 JSOI2014 支線劇情

傳送門 上下界網路流。以 1 號節點為源點 s 新建乙個匯點 t 如果 u 能到 v 那麼連邊 u to v 下界為 1 上界為 infty 費用為對應的所需時間,表示這段劇情至少看一次,且看一次代價為對應的所需時間。又因為我們可以在任何乙個節點重開一次,所以我們的每個節點 u 都連邊 u to t...