亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ZJOI 2010 貪吃的老鼠 最大流

2019-11-14 13:04:35
字體:
來源:轉載
供稿:網友

題目鏈接:點我點我:-) —只有洛谷有此題

題目描述: 奶酪店里最近出現了m只老鼠!它們的目標就是把生產出來的所有奶酪都吃掉。奶酪店中一天會生產n塊奶酪,其中第i塊的大小為pi,會在第ri秒被生產出來,并且必須在第di秒之前將它吃掉。第j只老鼠吃奶酪的速度為sj,因此如果它單獨吃完第i快奶酪所需的時間為pi/sj。老鼠們吃奶酪的習慣很獨特,具體來說: (1) 在任一時刻,一只老鼠最多可以吃一塊奶酪; (2) 在任一時刻,一塊奶酪最多被一只老鼠吃。 由于奶酪的保質期常常很短,為了將它們全部吃掉,老鼠們需要使用一種神奇的魔法來延長奶酪的保質期。將奶酪的保質期延長T秒是指所有的奶酪的di變成di+T。同時,使用魔法的代價很高,因此老鼠們希望找到最小的T使得可以吃掉所有的奶酪。

輸入格式: 輸入文件的第一行包含一個整數K,表示輸入文件中數據的組數。 每組數據的第一行包含兩個整數n和m,分別表示奶酪和老鼠的數量。接下來的n行每行包含三個整數pi,ri,di。最后m行每行包含一個整數,表示sj。pi,ri,di,sj的含義如上文所述。

輸出格式: 包含K行,每行包含一個實數,表示你找到的最小的T。你的答案和標準答案的絕對誤差不應超過10?4

數據規模: 30%的數據中,1≤n,m≤5; 100%的數據中,1≤K≤5,1≤n,m≤30,1≤pi≤105, 0 ≤ri < di≤107,1≤sj≤105

思路: 網絡流好題 應該容易想到二分答案和離散化奶酪的時間點

先考慮樸素的建圖,也就是不考慮每個時刻可以有多只老鼠在不同的小時刻吃同一個奶酪 1.我們將源點每個奶酪鏈流量為p[i]的邊 2.然后把每只老鼠的每個時間段拆為一個點,再將其與對應的奶酪連邊,流量為這只老鼠可以在這個時間段吃多少奶酪 3.所有的老鼠向匯點連邊,無限流量

然而題目有限制,每個時刻可以有多只老鼠在不同的小時刻吃同一個奶酪,做法很巧妙,我們可以對老鼠的速度再進行拆點,把s[]從大到小排序然后與下一個作差,如”9 6 2 1” -> “3 4 1 1”,然后再將其與匯點連邊的流量改為(rat為老鼠編號,dur為時間段大小,s為作差后的數組)rat*s[rat]*dur即可

為什么呢? 可以發現速度進行過如此處理之后, 9 = 3+4+1+1 6 = 4+1+1 2 = 1+1 1 = 1 9+6+2+1 = 3*1 + 4*2 + 1*3 + 1*4 (下面所有的s數組均為作差后的數組) 1.所以,當我們把老鼠點到匯點的流量限制設為rat*s[rat]*dur后,對于每一只老鼠,它‘吃’的量不超過實際可以‘吃’的量。(上述式子解釋了,實際包括編號比它小的老鼠的吃的量) 2.每個老鼠點與奶酪的連邊為s[rat]*dur,這樣可以保證每只老鼠實際不可以超過自己這段時間可以吃的奶酪。 3.(對于第2點的解釋)實際這段時間奶酪被吃的量不超過最快的老鼠的速度在這個時間段可以吃的量,如果每只老鼠在2點所述的邊滿流,那么實際相當于吃的最快的老鼠吃了這一整個時間段。而任何其它的情況均可以用別的老鼠湊出來,且由于第一點不會不合法

最后,每次二分答案,重新構圖跑最大流,檢查是否滿流即可。

感想: 很好的網絡流題目,然而連網絡流都沒想到是什么鬼??? 原來網絡流構圖還可以這么神奇,把每個點使勁拆成這個鬼樣子?。?! 網絡流的代碼應該沒什么問題了,但是構圖能力還要再提高啦! 吐槽一下我調了3個小時的錯誤: 1.精度eps,寫錯居然可以導致最大流超過了我的p數組值的和!?。?2.我的天哪:(f=dfs(e.to, fmin(Mint, e.cap-e.flow)))>eps 這句話我不小心把 > eps寫到最后一個括號里面了。。

代碼

//miaomiao 2017.2.3#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<vector>#include<queue>using namespace std;#define pb push_back#define Set(a, v) memset(a, v, sizeof(a))#define For(i, a, b) for(int i = (a); i <= (int)(b); i++)#define MN (30+5)#define N (3000+5)#define eps (1e-6)struct Edge{ int from, to; double cap, flow;};struct Dinic{ vector<int> G[N]; vector<Edge> edges; int m, s, t; int cur[N], d[N]; void init(){ For(i, 0, N-1) G[i].clear(); edges.clear(); } void AddEdge(int u, int v, double cap){ edges.pb((Edge){u, v, cap, 0}); edges.pb((Edge){v, u, 0, 0}); m = edges.size(); G[u].pb(m-2); G[v].pb(m-1); } bool Bfs(){ queue<int> q; q.push(s); Set(d, 0); d[s] = 1; int now; while(!q.empty()){ now = q.front(); q.pop(); For(i, 0, G[now].size()-1){ Edge &e = edges[G[now][i]]; if(!d[e.to] && e.cap-e.flow > eps){ d[e.to] = d[now]+1; q.push(e.to); } } } return d[t]; } double dfs(int now, double Mint){ if(Mint < eps || now == t) return Mint; double f; double ret = 0.0; for(int &i = cur[now]; i < G[now].size(); i++){ Edge &e = edges[G[now][i]]; if(d[e.to]==d[now]+1 && (f=dfs(e.to, fmin(Mint, e.cap-e.flow)))>eps){ e.flow += f; Mint -= f; edges[G[now][i]^1].flow -= f; ret += f; if(Mint < eps) return ret; } } return ret; } double Maxflow(){ double ret = 0.0; while(Bfs()){ Set(cur, 0); ret += dfs(s, (1LL<<60)*1.0); } return ret; }}Din;int n, m;double L, R, rp[MN], rr[MN], rd[MN], rs[MN], Ti[MN*2];void solve(){ double mid, la, sum = 0; int pn; For(i, 1, n) sum += rp[i]; while(R-L > eps){ mid = (L+R)/2.0; Din.init(); For(i, 1, n) Din.AddEdge(0, i, rp[i]); For(i, 1, n){ Ti[2*i-1] = rr[i]; Ti[2*i] = rd[i]+mid; } sort(Ti+1, Ti+2*n+1); Din.s = 0; Din.t = m*2*n+n+1; pn = n; For(rat, 1, m){ la = Ti[1]; For(i, 2, 2*n){ if(Ti[i]-la < eps) continue; ++pn; Din.AddEdge(pn, Din.t, rat*rs[rat]*(Ti[i]-la)); For(j, 1, n) if(rr[j]-la < eps && (rd[j]+mid)-Ti[i] > -eps) Din.AddEdge(j, pn, rs[rat]*(Ti[i]-la)); la = Ti[i]; } } if(sum-Din.Maxflow() < eps) R = mid; else L = mid; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲护士老师的毛茸茸最新章节| 91精品久久久久久久久久久久久久| 色777狠狠综合秋免鲁丝| 亚洲男人第一av网站| 精品久久久久久久久久久| 亚洲人午夜色婷婷| 91精品免费久久久久久久久| 在线电影av不卡网址| 久久久久久久爱| 国产v综合ⅴ日韩v欧美大片| 国产成人拍精品视频午夜网站| 精品色蜜蜜精品视频在线观看| www.精品av.com| 在线播放国产一区二区三区| 最新的欧美黄色| 亚洲天堂第一页| 久久视频免费在线播放| 午夜精品久久久久久99热软件| 日韩经典中文字幕在线观看| 国产成人精品视| 91在线高清免费观看| 欧美日韩一区二区在线播放| 亚洲国产精品免费| 在线精品高清中文字幕| 亚洲精品456在线播放狼人| 日韩av在线高清| 成人xxxx视频| 影音先锋欧美精品| 成人网址在线观看| 日韩久久午夜影院| 久久噜噜噜精品国产亚洲综合| 韩日欧美一区二区| 日韩视频在线观看免费| 国产精品久久网| 久久免费福利视频| 久久久久久久网站| 久久精品国产亚洲精品| 国产精品99久久99久久久二8| 狠狠色狠狠色综合日日五| 黄色成人av网| 久久久伊人欧美| 久久精品成人动漫| 日韩在线观看免费av| 97成人在线视频| 92看片淫黄大片欧美看国产片| 亚洲精品按摩视频| 91精品视频在线免费观看| 在线视频欧美日韩精品| 国产精品久久久久99| 97久久久久久| 国产精品爽黄69天堂a| 欧美大肥婆大肥bbbbb| 国产午夜一区二区| 国产在线精品自拍| 久久久天堂国产精品女人| 国产精品久久在线观看| 51精品国产黑色丝袜高跟鞋| 日韩视频永久免费观看| 色黄久久久久久| 亚洲美女av电影| 成人免费视频在线观看超级碰| 久久精品在线播放| 在线观看精品自拍私拍| 欧美成人合集magnet| 国产一区视频在线| 91精品国产综合久久久久久蜜臀| 国产精品自拍小视频| 亚洲欧美福利视频| 777国产偷窥盗摄精品视频| 欧美激情精品久久久久久免费印度| 91视频免费在线| 国产精品久久久久av免费| 欧美在线观看一区二区三区| 日韩不卡在线观看| 欧美久久久精品| 欧美人与性动交a欧美精品| 最好看的2019年中文视频| 成人伊人精品色xxxx视频| 92裸体在线视频网站| 日韩在线播放视频| 91精品国产综合久久香蕉的用户体验| 国产中文字幕日韩| 日韩精品免费一线在线观看| 亚洲性视频网址| 亚洲专区中文字幕| 精品香蕉一区二区三区| 日本一区二区三区在线播放| 亚洲成人激情图| 精品国产自在精品国产浪潮| 日韩在线观看免费全集电视剧网站| 伊人亚洲福利一区二区三区| 久久久久久网址| 国产精品久久久久久久久免费看| 97国产在线视频| 自拍偷拍亚洲在线| 91麻豆桃色免费看| 免费97视频在线精品国自产拍| 久久夜精品va视频免费观看| 一区二区三区美女xx视频| 中文字幕久精品免费视频| 日韩av网站电影| 国产精欧美一区二区三区| 久久久女人电视剧免费播放下载| 午夜精品蜜臀一区二区三区免费| 亚洲老头同性xxxxx| 亚洲国产精久久久久久| 中文字幕日韩欧美精品在线观看| 色综合色综合网色综合| 欧美日韩视频在线| 亚洲精品一区在线观看香蕉| 欧美激情久久久| 国产精品极品美女在线观看免费| 久久久国产精品亚洲一区| 91免费在线视频| 国产精品欧美风情| 亚洲国产成人在线播放| 成人一区二区电影| 欧美精品电影免费在线观看| 欧美黑人巨大xxx极品| 久久香蕉国产线看观看网| 成人综合网网址| 亚洲女人被黑人巨大进入| 欧美亚洲国产成人精品| 18一19gay欧美视频网站| 免费不卡欧美自拍视频| 久久精品一区中文字幕| 538国产精品一区二区在线| 国产精品国产福利国产秒拍| 久久99国产精品久久久久久久久| 亚洲性日韩精品一区二区| 久久久久久久久久久人体| 欧美一级大片在线免费观看| 欧美多人爱爱视频网站| 亚洲国产成人精品女人久久久| 国产亚洲成av人片在线观看桃| 国产视频久久久久久久| 亚洲电影天堂av| 成人午夜小视频| 成人羞羞国产免费| 深夜精品寂寞黄网站在线观看| 国内精品视频久久| 色偷偷av一区二区三区乱| 午夜精品一区二区三区视频免费看| 国产综合久久久久久| 日韩欧美在线一区| 午夜精品久久久久久99热| 久久久久久久久久久国产| 国产在线视频2019最新视频| 欧美激情一区二区久久久| 国产成人啪精品视频免费网| 亚洲视频电影图片偷拍一区| 中文字幕久久久| 在线播放亚洲激情| 日韩av在线免费观看| 91久久精品国产91久久性色| 午夜精品美女自拍福到在线| 欧美俄罗斯性视频| 欧美乱大交xxxxx另类电影| 黄色精品一区二区| 国产亚洲欧洲在线| 日韩在线不卡视频| 亚洲精品97久久| 国产精品久久久久久亚洲调教| 久久韩剧网电视剧|