刷題總結 支線劇情(bzoj3876費用流)

2022-05-23 13:48:09 字數 2213 閱讀 9161

【故事背景】

宅男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

024jyy需要重新開始3次遊戲,加上一開始的一次遊戲,4次遊戲的程序是

1->2->4,1->2->5,1->3->5和1->3->6。

對於100%的資料滿足n<=300,0<=ki<=50,1<=tij<=300,sigma(ki)<=5000

這道題很nb····

表面看起來如果直接按題意建圖的話,會是一道有下界費用流的題···md我不會···

但可以轉成普通費用流的題····這裡引用popoqqq題解····%%%%%%

對於每一條邊權為z的邊x->y:

從s到y連一條費用為z,流量為1的邊 代表這條邊至少走一次

從x到y連一條費用為z,流量為inf的邊 代表這條邊除了至少走的一次之外還可以隨便走

對於每個點x:

從x到t連一條費用為0,流量為x的出度的邊

從x到1連一條費用為0,流量為inf的邊,代替原圖上的源和匯

不得不說想到這樣建圖實在是太巧妙了·····

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int inf=1e+8

;const

int n=5000

;const

int m=150005

;queue

que;

int tot=1

,first[n],go[m],next[m],rest[m],cost[m];

int chu[n],ans=0

,dis[n],src,des,n;

bool

insta[n],visit[n];

intr()

inline

void comb(int a,int b,int c,int

d)inline

bool

spfa()}}

} return dis[des]!=inf;

}inline

int dinic(int u,int

flow)

visit[u]=true;

int res=0

,delta,v;

for(int e=first[u];e;e=next[e])

}}

return

res;

}inline

void

maxflow()

intmain()

chu[i]=t;

} for(int i=1;i<=n;i++)

maxflow();

cout

return0;

}

刷題總結 作詩(bzoj2821)

神犇sjy虐完heoi之後給傻 lyd出了一題 shy是t國的公主,平時的一大愛好是作詩。由於時間緊迫,shy作完詩 些漢字構成詩。因為shy喜歡對偶,所以shy規定最後選出的每個漢字都必須在 l,r 裡出現了正偶數次。而且shy認 為選出的漢字的種類數 兩個一樣的漢字稱為同一種 越多越好 為了拿到...

刷題總結 書架(bzoj1861)

小t有乙個很大的書櫃。這個書櫃的構造有些獨特,即書櫃裡的書是從上至下堆放成一列。她用1到n的正整數給每本書都編了號。小t在看書的時候,每次取出一本書,看完後放回書櫃然後再拿下一本。由於這些書太有吸引力了,所以她看完後常常會忘記原來是放在書櫃的什麼位置。不過小t的記憶力是非常好的,所以每次放書的時候至...

刷題總結 天使玩偶(bzoj2716)

學了cdq後近期最後一道題 然而tm還是搞了1個半小時才tm搞出來 先說思路 對於絕對值,我們採取類似於旋轉整個圖的方法,也就是說共計三次翻轉再加上原來的圖,每次旋轉90度,算出點在旋轉後的對應座標 具體看 中的注釋部分 然後對於乙個詢問,每次只算它左上角的點的貢獻,這樣就有乙個三維偏序 時間,x,...