一個美妙的網絡流總結


本文出處http://www.cnblogs.com/Paul-Guderian/p/6657639.html

如有版權問題,請私信聯系刪除

 

 

為了有助於你讀后文,在寫題前先列出一些大米餅的代碼習慣:

一個提醒:所有的ADD函數無特殊說明均如圖:(沒有w就直接跳過)

image

以及: go(i,a,b)=====for(int i=a;i<=b;i++),mem(a,b)==memset(a,b,sizeof(b))

並且:大米餅一般會使用ISAP算法求最大流,用Edmonds-Karp-SPFA算法求費用流。

[1]星際轉移問題

【最大流問題】

·特色:你不知道是在哪一天可以使全部人到達月球。

(誤區:二分答案。不要這樣做,因為最大流隨時都處於最優解狀態,所以我們只需要輕輕地枚舉天數【T++】)

·建圖思路:

(1)創建源點匯點,即地球和月球。

(2)飛船從地球接人,在月球放人,所以把在此位置的飛船與源點(匯點)建邊。

(3)飛船昨天的狀態,今天的飛船繼承,這兩個飛船之間建邊。

(4)昨天空間站里面可能會有人,所以還要讓昨天停靠在那里的飛船將他們運走(早運晚運,早晚都要運,這不影響最優決策)

SUM-UP:

      在常規的建圖上,這道題使得圖富有動態感。這個叫做“分層圖”,但為了方便理解,在這道題中我們可以看做是根據實際情況不斷加邊的圖。

額外提醒:每條邊的容量cap怎么規定呢?除了(4)中的容量為h[i]外,其余都可以設為INF(或許從地球出發時容量應限制為k,但是每一天都在判斷,這一點變得無關緊要)。為什么?因為(4)操作代表了實際情況下飛船的運輸情況,然而其他的操作實際上是邏輯討論規定的(比如說(3)號情況,你總不可能讓飛船上的人經過一天就卡死一部分吧?所以用INF是得當的)

另外,飛船是在移動的,可以將這種情況轉化為給飛船當天停靠的空間站和昨天的空間站建邊,所以飛船建邊實際上就是將空間站節點建邊。所以,這里容易產生的誤區是:當前的圖是表示當天狀態的。不是,這圖是表示至今為止的疊加狀態,這樣才滿足最大流的性質。

·下面的第一幅圖設置了一種非常簡單的情況:

只有一個飛船,三個空間站(是ABC,不要看成了太空里總共有15個空間站啦)。所以不要認為橙色狀態繼承沒有意義,因為在有其他飛行周期和航道不同飛船的時候,這些邊就有了意義。

image

很明顯的是,這道題的建模部分代碼長度遠遠超過了網絡流算法的長度,這里只列出了建模過程(下面的題大都也會這樣)。

image

n(太空站個數),m(太空船個數)和k(需要運送的地球上的人的個數)

上圖中注釋有一誤:應將“來自昨天的飛船”改為“昨天空間站的人留到今天”,類似的將“昨天的空間站”改為“飛船將空間站的人運走”。

[2]負載平衡問題

【最大流最小費用問題】

·特色:環狀網絡;只能向相鄰的點轉移貨物;求出最小轉移貨物量。

·建圖思路:

(1)流動的貨物來自於倉庫,它往何處去?回到另一倉庫。所以倉庫們既是源點也是匯點,所以必須處理一下:建立超級源匯點(S and T)。值得注意的是,連向匯點的容量均為average(平均值),這樣美妙地滿足了最終需要每個倉庫貨物相同的需要。

(2)考慮向兩側相鄰倉庫運輸的情況,進行拆點操作(這樣建出來的圖比較清晰,可以避免重邊),一個點被拆成“前點”和“后點”,那么就B倉庫的點來講,就從B后點引出兩條各自通向A前點和C前點的邊(不是雙向的,因為如果要反方向運,可以從C或A后點連邊向B前點嗎,雙向邊是多余的)

如圖:所有邊的容量cap均為INF(因為題目中沒有對它的限制)。然而我們的目的是:盡可能少走藍色的邊(因為這表示倉庫之間貨物的轉移,它的多少就是答案呀!)因此給這些“該死”的邊加上相同的費用(其他邊是無辜的,它們的費用均為零)

DD33C6584CC3E58EAE6134092DA60E18

(注意,圖中只繪制出了向一側的相鄰點的邊,因為再畫就混亂不直觀了)

·以下是建模部分代碼:

image

(一個處理技巧:在拆點的時候,設原來的點為i,則拆成的兩個點的編號為:i和i+n)

[3]深海機器人問題

【最大流最小費用問題】

·特色:很典型的網絡流棋盤建模問題,需要考慮位置關系。

·建圖思路:

(1)每個點可以隨便走,但是它上面的美妙寶藏只能撿拾一次。轉化為最大流問題就是:不論走多少次,也只能在這個點上獲得一次美妙寶藏。所以我們想到了一條邊,一條容量為1(只能撿1次),權值為寶藏價值的邊。但是對於其他來到這里的機器,他們依舊可以借道過去,只是沒有寶藏罷了,所以再加上一條容量inf,沒有權值的邊,毫無疑問,需要拆點,用以上兩種邊相連(TIP:點i可以拆成i和i+n,n是總點數,是不是很美妙?)。

(2)有k個探測器,那么就在建立超級源點匯點時,那條邊容量為k就可以。

·這種方法很好理解,下面還有一種直接建邊的方式,都沒什么問題!

imageimage

[4]最長k可重區間集問題

【最大流最小費用問題】

·特色:覆蓋關系和線段長度兩個元素的轉化

·建圖思路:(在這里我們使用左閉右開區間)

(1)每個點最多被k個線段覆蓋。那么可以轉化為某些邊的容量為k。你有你的權利放棄某條線段,所以對於每個點,與它后面的一個點建邊,容量為k,沒有權值。同時對於區間[L,R),向節點L,R加上一條邊,一條容量是1的邊。

(2)最終答案要求所選擇的線段長度總和最大。這可以轉化為一個權值問題,所以就把(1)中邊的權值設置為該線段的長度。

【注意:不是每道題都很溫柔,你可能需要離散化】

Sadly,codevs上面這道題的數據有錯誤。

但是這個題型很經典,可以變式,可以與其他問題結合。

image

[5]雜貨商供應問題

【最大流最小費用問題】

·英文題,述大意:

       N個供應商,M個店主,K種物品。輸入每個供應商對每種物品的的供應量、每個店主對每種物品的需求量、從不同的供應商運送不同的貨物到不同的店主手上不同的花費,以及從供應商Mj送第kind種貨物的單位數量到店主Ni手上所需的單位花費。供應是否滿足需求。滿足時求出最小運費。

·網上一位優秀博主給出了輸入樣例分析:【CLICK】

·特色:關系清晰,商品相對獨立,建圖開銷不大。

·建圖思路:

(1)雜貨商(供應)有一個供應量,那就用一個超級源點來建邊指向每一個雜貨商,邊的容量即為雜貨商的供應量。

(2)店主(購買)有一個需求量,那么就將雜貨商和店主們連上邊,容量為雜貨店的需求量(這里不要錯寫成店主需求,不然這就表明商品運到半途突然卡死了一部分……),權值為運費(別忘了反向弧時是相反權值)。類似的,來一個超級匯點,與各個店主相連,容量為店主需求量。

(3)一個漏掉的問題:有多件商品。那么就枚舉,對於每件商品,按照上述方式建圖即可。

image

如下是建模部分的代碼:

 

 

image

[6]小人回家問題

【最大流最小費用問題】

·英文題,述大意:

     讀入n,m,和一個n*m的矩陣,矩陣中H代表房子,m代表一個小人人,其余是空地。每個小人人要尋得一個家,到達家中的話費是兩點之間的馬哈頓距離,輸出最優分配的情況下的最小費用。

·特色:典型,就是無比典型。

·建圖思路:

(1)一人一個房子,所以用超級源點和每個人建邊,邊容量為1,沒有權值。

(2)同理,每個房子和超級匯點也這樣建邊。

(3)每個人要前往房子。將每個人和每個房子紛紛建邊,權值即為曼哈頓距離,容量為1。

image

以下是建模部分代碼:

image

 

[7]雙核CPU問題

【最大流問題】

·英文題,述大意:

     讀入n,m,表示有n個任務和m個限制。每個任務只能交給給定的兩個處理器中的一個處理。接下來n行輸入a,b表示第i個任務在CPU_A上和CPU_B上處理的花費。接下來m行輸入x,y,z,表示如果x任務和y任務不被同一個處理去處理,那就要額外花費z的價值。求如何分配使得總花費最小。

·特色:兩個處理器!

·建圖思路:

(1)每個任務在不同處理器上的花費不同,那就以CPU_A,CPU_B為超級源點匯點,分別於每個處理器建立單向邊(注意方向)。

(2)考慮給定的限制條件。那么就將x,y之間建立一條雙向邊,容量為z。

·So,這道題求什么呢?最大流,還是最小割的容量?

這個圖建出來怎樣理解?

·考慮這是一個取舍問題(二分圖模型),在建的圖中,什么才叫做選擇了把某個任務交給某個CPU去完成?

      從簡單情況入手:沒有m個限制,如圖:

image

·進行一遍最大流算法后,圖中紅邊滿載。我們發現最大流算法的美妙之處是可以自動取MIN(a,b)。而在這種情況中,滿載邊正好表示你為任務選擇了處理器,從而得到最優解。

·為了加速理解,現在取一個極端:題目有一個限制,那就是任務1和任務2如果不在同一處理器,你將額外支付100000000000000。

image

你感到絕望,所以你決定把1,2號任務全都放到CPU_A中去完成。如果現在進行一遍最大流算法,如圖:

image

·圖中紅色的邊依舊是滿載邊,黃色邊表示可能滿載(這取決於你的建邊以及枚舉順序),我們可以得到一個小小結論:必定滿載的邊就是最優的選擇。因為流量在此無法擴大(這里也就是最小割的位置)。再深入一點,從實際意義來講,如果你保持先前的選擇(任務1,2不在同一個處理器),那么必須保證那條因為限制而加的“大邊”一定流滿(表示你願意支付所有額外花費)。相反地,如果限制的花費不是很大的話,你可能還會堅持原來的選擇,這時將上圖的顏色反過來就是了。所以本題求最大流。

·下面是建模部分的代碼:

image

[8]來回最短路問題

【最大流最小費用問題】

·英文題,述大意:

       一個圖,起點終點固定,來回一次,不重復任何一條道路,求最小道路數(就是路徑長度)

·特色:在進行兩次Dijkstra爆炸后許多人意識到這是一道網絡流。

·建圖思路:

(1)走兩次。那么超級匯點超級源點與終點起點的連邊的容量為2,,無權值。

(2)求最小路徑。那么每段路徑就是一條邊,容量為1,權值為1。

image

下面是建模部分的代碼:

image

 

[9]公平分配問題from Rujia Liu

【最大流問題】

·述大意:

    讀入n,m表示有n個任務,m個處理器,接下來讀入n個二元組(x,y),表示第i個任務可以拿給處理器x或y來完成。問如何分配,是的處理任務最多的處理器所處理的任務數最少。

·特色:二元組,“使最多的最少”。

·建圖思路:

(1)每種任務只有一個,處理器可能會完成多個任務。所以超級源點連向所有任務,容量為1。所有處理器向超級匯點連邊,容量為██████(小明寫字時把鋼筆墨水和大米餅灑上面了)。

(2)每個任務只會選擇一種處理器。把任務和處理器建邊,容量是1。

·你能求出被墨水遮蓋的部分嗎(每小題10分)。

·首先我們可以肯定的是,處理器連向超級匯點的邊容量就是這個處理器處理的任務數。但我們什么都不知道。注意這道題目的問題,所以二分解決問題。即二分“任務數最多的處理器的任務數x”

image

(代碼略,由於大米餅還沒有FQ,所以LA 3231一題暫時進不去)

[10]網絡擴容問題from Rujia Liu

【最大流問題】

·述大意:

   (多組)讀入n,e,c,表示n各節點,e條邊(接下來會讀入u,v,cap,表示每條有向邊的數據),流量要求c。如果從1到n點之間存在大小為c的流,則輸出possible,否則判斷:是否可以改動一條邊的容量,使得滿足上述條件,如果可以改動,則將所有的可改動邊輸出(u從小到大,相同時v從小到大),否則輸出not possible。

·特色:可以改動容量的網絡流問題

·建圖思路:(本來就是一張圖啊)

·分析:

      首先可以進行一次最大流算法,可以判斷當前是否存在流滿足c大小。

由於題目要求只能修改一條邊,可以想到:如果要達到增流的目的,那么這條邊一改,必定出現一條這條邊所在的增廣路,由最大流最小割定理可得這條邊一定在該圖的最小割中。

                image

·所以我們可以這樣玩:在第一次最大流結束后,把所有流量保存下來(具體方式是:把每一條邊的cap減去當前的流量,再把流量清零,這樣做方便后來的操作),然后求出最小割(這個根據最大流算法來定,比如這道題大米餅用的是ISAP/Dinic,那么只需要再進行一次BFS()刷新d數組,找到這樣一條邊(u,v): d[u]<inf&&d[v]==inf即可,這就表示的是最小割,注意可以不管反向弧,單條邊改變無影響)。隨后枚舉最小割中的邊,將其容量改為c后進行一次最大流算法,如果新加的流與最初計算出來的flow的和大於等於c,則說明更改這條邊是可以達到目的的(注意枚舉每條邊后的清零操作)。

·下面給出主函數代碼:

image

[11]運輸安排問題from Rujia Liu

【最大流問題】

·述大意:

      輸入n,m,k,s,t表示共有n個星球,m條雙向路徑,每條路徑走過所需時間均為1天。現在需要將k個大米餅從起點S運往終點T,並且在同一時刻不能有兩個(及以上)的大米餅同時在被運輸(一車一餅制度,車輛單行制度)。求最少花費時間,並且輸出每天的如下情況:發生移動的大米餅個數,以及輸出(x,v)表示編號為x的大米餅在當天前往v星球。

·特色:時間相關;求天數;輸出具體情況

·建圖思路:(與[1]類似思想)

(1)起點即源點,終點即匯點。

(2)將存在雙向路徑的星球連邊。由於每天只能有一個大米餅通過,所以容量為1(結合下文理解便是了)。

(3)天數不定,用枚舉天數代替二分答案。隨着天數增加,不斷添加新邊新點。也可以理解為,將一個星球點拆成day個點。完善地說,將若a,b之間本來有路徑,則將今天的b與昨天的a建立單向邊,表示大米餅花費一天時間從a到達b,該邊容量是1(就上(2)中的邊升級版)。另外,這是一個和諧社會,所以人們要文明禮讓,這不失為一個好計策。這啟示我們大米餅可以在某個星球上停留幾天,而不是隨時走來走去呢?所以將昨天的a與今天的a連上一條邊,容量inf。

·(圖略,與[1]大同小異)

·如下為建模和打印部分代碼:

image

·注意感嘆號標記處,這里表示:可能會出現一條路上兩個大米餅同時相向而行的情況(拆點的緣故,而且是雙向邊)。然而如果兩個方向上都有流量,考慮到大米餅都是一樣的,所以可以抵消。那么能夠算是發生移動的大米餅就是代碼中寫的兩種情況,這取決於流量的方向。

[12]收集者問題from Rujia Liu

 

·述大意:

     鮑勃和他的朋友們都喜歡收藏不同種類的大米餅。鮑勃聰明,其他人笨。輸入n,m表示包括鮑勃在內共有n個人,他們共有m種大米餅。接下來n行輸入每個人的大米餅擁有情況(不一定每種大米餅每人都有,同種大米餅可重復輸入;另外,第一行表示的是鮑勃的情況)。他們都可以,也只可以和鮑勃1對1地公平交換自己的大米餅,但由於智商原因,他們采取的策略不同:除鮑勃外的所有人只願意用自己手里的重復種類的大米餅來向鮑勃換取他們沒有的大米餅;鮑勃則很隨意,只要公平交換就可以了。問鮑勃最大的可以收集的大米餅種類數。

·特色:這是什么東西?

·建圖思路:

(1)先討論要求巨高的鮑勃的朋友們吧。梳理如下:

<1>自己有1個以上的這種大米餅,才會去交換。

<2>換回來的大米餅必須是自己以前沒有的。

       那么奇怪的是,這種關系放入最大流的圖中,該怎樣構建呢?好像是必須有東西一邊進去,然后另一邊給你吐出點其他的東西,這些新東西才能對答案有所貢獻。所以鮑勃的朋友可以看作是一種“轉換器”。

                     image

      所以我們要構建一個圖,可以表示:鮑勃給某個朋友一種大米餅(入邊),然后這個朋友回報另一種大米餅(出邊)。根據剛才的結論,對於一種大米餅,和同一個朋友,鮑勃最多拿這個大米餅去與這個朋友交換一次(以后這個朋友就有這種大米餅了,再找他交換,他會拒絕並狠狠地打你)。

       形象化地,現在鮑勃拿A(餅)去換取朋友的B(餅),那么相當於一條單向邊指向這個朋友,容量為1,一條單向邊從朋友指出,容量也為1。如果我們將每種大米餅看做節點,那么A指向朋友依舊是容量為1的邊,但是朋友的大米餅是給鮑勃的呀,而不是還給大米餅A的,所以指出的邊的容量還是1嗎?不一定,因為鮑勃可以拿另一種大米餅再來交換。所以出邊的容量為:朋友擁有這種大米餅的數量減去1(表示他自己要留一個)。

(2)綜合上述討論,建圖如下:

       用m個節點表示不同的大米餅。從超級源點向m個大米餅連邊,容量為鮑勃擁有該種類的數量。接下來考慮朋友們:

      用n-1個節點表示每個朋友。對於每種大米餅和每一個朋友,如果這個朋友有這種大米餅(表示他可以提供)那么就用一條容量為該朋友擁有的個數減1邊指向該種大米餅節點;如果這個朋友沒有這種大米餅,那么就從該大米餅建一條容量為1(表示只有一次交換)邊指向這個憨厚的朋友。

       最后將每個大米餅指向超級匯點,容量為1(便於統計種類)。

image

·下面為建模部分的代碼:

image

這道題的原題中真的有大米餅嗎?

[13]生產銷售規划問題from Rujia Liu

【最大流最小費用問題】

·述大意:

      大米餅制造廠生產大米餅。輸入M,I表示考慮M個月,存放一個月的代價為I。接下來m行描述每個月的情況:輸入m,n,p,s,E,分別表示本月的單元生產成本,最大產量,售價,最大銷售量和最多能夠儲存的月數。求怎樣安排賣這個行為,使得獲利最大。輸出最大利潤。

·特色:時間相關。

·建圖思路:

(1)有產量和銷量。拆點,一個與超級源點相連,邊容量為當月產量,另一個與超級匯點相連(表示賣這批商品),容量為當月銷量。

(2)有多個月。繼續拆點,給每一個月兩個點(記為前點后點)。

(3)有保質期,所以將當月的前點與能夠保存不變質的后來幾個月的后點分別建邊(表示幾個月后賣出)。

image

注:程序中,記得加上存儲費用帶來的額外費用。

·給出建模部分代碼:

image

 

[14]無源匯可行流問題

【無源匯可行流問題】

·英文題,述大意:

     反應需要你降溫,你不得行,所以要設計循環系統,保證一個循環流。讀入n,m表示節點數和管子數。接下來n行讀入u,v,Min,Max表示管子i是一個起點為u終點為v的單向邊,容量下限是Min,容量上限是Max。問是否存在這樣的循環系統(即每個點流量平衡,每支試管的流量滿足上下界)。並輸出每個邊此時的流量。

·特色:容量下限不為0,無源無匯。

·建圖思路:

(1)這本來就是一個圖啊,不用建。——小米餅

(2)上面一行在亂說胡說瞎說。目前連超級源點匯點都沒有,怎么利用網絡流知識解題?所以需要轉化成已知問題。分析一個簡單圖片:

image

 

·先解決不熟悉的問題:容量下限怎么維持?如果我們將一條邊的總容量(也就是容量上限)看成兩部分:必須部分(從0到容量下限)和自由部分。以前做的題全都是只有自由部分,那時的生活是多么自由啊。

image

 

·所以我們的目標是保證紅色邊永遠滿流,那么無論自由部分怎么玩,都可以滿足容量上下界。怎么維護滿流呢?這讓我們聯想到以前做過的一些要使用二分的網絡流問題:我們判斷二分結果是否滿足條件的方法——設每個指向匯點的邊容量為1(共m條),那么當最大流為m時,則滿足二分的答案。所以為什么不把這些紅邊處理成連接匯點源點的邊呢?用一條邊來舉例子:(在此我們建立一個美妙匯點和源點)

image

·所以,一個無源無匯的圖可以這樣改造:

image

 

·現在方法就很簡單了:只需要保證SS的出邊(或是TT所有入邊,等價)滿載,即里面的流量均達到容量限制(這里都指的是紅色的邊:必須部分)。

所以肆意進行一次最大流(SS--->TT),如果最大流量等於SS所有的出邊容量(即表示滿載,TT入邊也可以),那么說明存在這樣循環流滿足條件。

·下面是建模代碼:

image

[15]有源匯最大流問題

【有源匯最大流問題】

·英文題,述大意:

          一個你給m個大米餅拍照,計划拍照n天,每一天你給給定的C個大米餅拍照,每天拍照數不能超過D張,而且給每個大米餅i拍照有數量限制[Li,Ri],對於每個大米餅n天的拍照總和不能少於Gi,如果有解,求你最多能拍多少張照,並求每天給對應大米餅拍多少張照;否則輸出-1。

·特色:數量限制是區間(上下界),求最大數。

·建圖思路:

(1)每天照片不超過D張。從超級匯點向每一天建邊,容量為D。

(2)每天大米餅拍照數有一個區間限制,則將“每一天節點”向每一個大米餅連一條容量下限為Li,上限為Ri的邊。

(3)對於每個大米餅,幾天下來被拍的照片不得少於G張。從每個大米餅向匯點建立一條容量下限為G的邊(上限inf)。

image

·所以就可以解決這道題了。但前提是你要會怎樣求有上下界的最大流。依舊是問題轉化,既然[14]題的思想那么好,我們應該繼續傳承。考慮怎樣將這個問題轉化為無源無匯之圖以及怎樣求出最大流。

·那么直接來說,分為兩個步驟:保證基礎和繼續增廣。

~保證基礎:即保證所有邊的流量滿足的下界容量。用網絡流原理可知,一切流從源點出發在匯點拜拜,那我們怎樣去了解一路上的邊是否流量都滿足下界限制?那不如將從匯點向源點連一條只有容量上界且為inf的邊吧,因為這樣可以使整個圖的流循環起來,既不會變少,也不會增加,而且使這個問題直接沒有壞處地轉化為無源無匯問題!在這個新圖中用SS,TT按照相同的操作,便可以判斷出這個圖是否存在一種情況可以保證所有邊的流量滿足容量下限(如果不滿足,求整個圖最大流就別談了,因為條件都不滿足)。

~繼續增廣:注意在這之前的操作最多只能保證所有下限的滿足(試回憶剛才圖中的必須部分和自由部分)。所以現在需要將自由部分增廣。很簡單,直接從S到T(當然不包括那條inf邊!注意:不是SS,TT——不要大米餅吃多了犯傻)進行一次最大流算法就可以了。這個問題的答案就是將兩個步驟的流量加起來,YES!給出建模部分和主程序代碼:

image

[15]有源匯最流問題SGU 176

【有源匯最流問題】

·述大意:

          n個節點,m條路徑,接下來m行a,b,c,d,如果d等於1,則a到b的流量必須為c,如果d等於0,流量可以為0到c,問如果有可行流,輸出最小流量和每條邊的流量,否則輸出impossible。

·特色:最小流

·建圖思路:

(1)本身就是一張圖,關鍵在於如何解決這一類問題。下面給出網絡上比較通用的“無源無匯最小流”的解法。

1.構造附加網絡(不添加[t,s]邊)

2.對ss、tt求最大流

3.添加[t,s]邊

4.對ss、tt求最大流

5.若ss、tt滿流,則[t,s]的流量就是最小流

Sadly,由於自己始終沒能為大米餅推導出一個完整的證明體系,而網絡資源匱乏,所以與其給大家分享網絡上常用的“感性認識”,還不如保持沉默——懂就清楚地表達,不懂就自己學,不要用殘缺無序的思想去誤導他人。

如下是建模部分代碼:

image

 

 

 

大米飄香的總結:

      本文列出了一些基本題型,重在建模思路的探索和一些常用處理方式。但你也可以視作這是一個毫無頭緒、純屬無聊而作的一頁亂碼(當然,大米餅不會這樣認為),這樣我會更加努力去完善。補充說明一個問題,在上下界網絡流中,附加點SS,TT的建邊方式是可以簡化的,簡化的結果也就是代碼中的du[]數組,這種簡化方式優化了程序,在應用時更加常用。還有就是,本文可能訛誤眾多,但畢竟是在用混亂的詞句表達真摯的含義,希望讀者收下大米餅的這份真誠!————【Paul_Guderian】2017.4.6 night

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM