日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

WC2007 石头剪刀布 数学+最小费用最大流

發(fā)布時(shí)間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WC2007 石头剪刀布 数学+最小费用最大流 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題面:

  有N個(gè)人參加一場(chǎng)比賽,賽程規(guī)定任意兩個(gè)人之間都要進(jìn)行一場(chǎng)比賽:這樣總共有N*(N-1)/2場(chǎng)比賽。比賽已經(jīng)進(jìn)行了一部分,我們想知道在極端情況下,比賽結(jié)束后最多會(huì)發(fā)生多少剪刀石頭布情況。即給出已經(jīng)發(fā)生的比賽結(jié)果,而你可以任意安排剩下的比賽的結(jié)果,以得到盡量多的剪刀石頭布情況。
  剪刀石頭布情況,即無(wú)序三元組(A, B, C),滿(mǎn)足其中的一個(gè)人在比賽中贏了另一個(gè)人,另一個(gè)人贏了第三個(gè)人而第三個(gè)人又勝過(guò)了第一個(gè)人。

?

分析:

  把題意轉(zhuǎn)化一下,就是給定了一張有向完全圖的殘本,剩下的邊你可以任意安排,求出現(xiàn)最多的三元環(huán)數(shù)量。

  我們可以用一下小小的容斥,假如我們?nèi)芜x三個(gè)點(diǎn),方案數(shù)是C(n,3),我們就找出最少失去的三元環(huán)數(shù)量,就可以給出這個(gè)題的答案了。

  根據(jù)《一眼看出法》,我們可以了解,假如一個(gè)點(diǎn)x的入度(以下簡(jiǎn)稱(chēng)in[x])為w,那么它會(huì)使整個(gè)圖失去的三元環(huán)數(shù)量為C(w,2)。

  即:如果一個(gè)點(diǎn)的入度增加1,會(huì)使三元環(huán)數(shù)量減少in[x]-1這么多。所以我們需要盡量保證不會(huì)出現(xiàn)某個(gè)點(diǎn)入度特別多,換句話(huà)說(shuō)就是盡量讓入度平均。(這大概就是題解中說(shuō)的凸函數(shù)的性質(zhì)???)

  所以,我們將失去的三元環(huán)作費(fèi)用,跑費(fèi)用流。

  對(duì)于未定向的邊,我們將其抽象成點(diǎn)(這里原圖中的點(diǎn)也被抽象成點(diǎn))

  我們由源點(diǎn)S向每條未定向的邊對(duì)應(yīng)的點(diǎn)連邊,容量為1費(fèi)用為0;

  對(duì)于每條被我們建成點(diǎn)的邊,我們從這個(gè)點(diǎn)向這條邊連通的兩個(gè)點(diǎn)連邊,容量為1,費(fèi)用為0,表示這條邊會(huì)給其中一個(gè)點(diǎn)帶來(lái)入度加一的貢獻(xiàn)。

  對(duì)于每個(gè)原圖上的節(jié)點(diǎn)x,我們想?yún)R點(diǎn)T連接若干條邊,容量都為1,費(fèi)用分別為in[x], in[x]+1, in[x]+2,…,n-2(表示每增加1個(gè)單位的流量,就會(huì)帶來(lái)這么多三元環(huán)的毀滅。想想為什么最大是n-2?)

  之后定向方案,看邊對(duì)應(yīng)的點(diǎn)哪條出邊滿(mǎn)流即可!

代碼:

1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=100005,inf=0x3f3f3f3f;int f[N]; 4 struct node{int y,z,f,nxt;}e[N*16];int lst[N]; 5 int n,S,T,tot,g[105][105],dg[N],tmp[N],X[N],Y[N]; 6 int h[N],c=1,d[N],vis[N],pre[N],ans;queue<int>q; 7 void add(int x,int y,int l,int z){ 8 e[++c]=(node){y,z,l,h[x]};h[x]=c; 9 e[++c]=(node){x,-z,0,h[y]};h[y]=c; 10 } bool spfa(){ 11 for(int i=S;i<=T;i++) pre[i]=-1, 12 f[i]=inf,lst[i]=vis[i]=0,d[i]=inf; 13 q.push(S);d[S]=0;pre[S]=0; 14 while(!q.empty()){ 15 int x=q.front();q.pop();vis[x]=0; 16 for(int i=h[x],y;~i;i=e[i].nxt) 17 if(d[y=e[i].y]>d[x]+e[i].z&&e[i].f){ 18 d[y]=d[x]+e[i].z;pre[y]=x;lst[y]=i; 19 f[y]=min(f[x],e[i].f); 20 if(!vis[y]) vis[y]=1,q.push(y); 21 } 22 } return pre[T]!=-1; 23 } void solve(){ 24 while(spfa()){ 25 ans+=d[T]*f[T];int x=T; 26 while(x) e[lst[x]].f-=f[T], 27 e[lst[x]^1].f+=f[T],x=pre[x]; 28 } return ; 29 } int main(){ 30 memset(h,-1,sizeof(h)); 31 scanf("%d",&n);S=0,tot=n; 32 for(int i=1;i<=n;i++) 33 for(int j=1;j<=n;j++){ 34 scanf("%d",&g[i][j]); 35 if(g[i][j]==2){ 36 if(i>j) continue; 37 X[++tot]=i,Y[tot]=j; 38 add(S,tot,1,0); 39 add(tot,i,1,0); 40 add(tot,j,1,0); 41 tmp[i]++;tmp[j]++; 42 } else dg[i]+=g[i][j]; 43 } T=++tot;for(int i=1;i<=n;i++){ 44 ans+=(dg[i]*dg[i]-dg[i])/2; 45 for(int j=dg[i]+1;j<n;j++) 46 add(i,T,1,j-1); 47 } solve();int tt=n*(n-1)*(n-2)/6; 48 printf("%d\n",tt-ans); 49 for(int i=n+1,v;i<tot;i++){ 50 for(int p=h[i];~p;p=e[p].nxt) 51 if(e[p].y!=S&&!e[p].f) 52 {v=e[p].y;break;} 53 if(v==X[i]) g[X[i]][Y[i]]=1, 54 g[Y[i]][X[i]]=0; 55 else g[X[i]][Y[i]]=0,g[Y[i]][X[i]]=1; 56 } for(int i=1;i<=n;i++,puts("")) 57 for(int j=1;j<=n;j++) 58 printf("%d ",g[i][j]);return 0; 59 } 費(fèi)用流

?

轉(zhuǎn)載于:https://www.cnblogs.com/Alan-Luo/p/10250962.html

總結(jié)

以上是生活随笔為你收集整理的WC2007 石头剪刀布 数学+最小费用最大流的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品视频在线播放 | 131mm少妇做爰视频 | 性色欲网站人妻丰满中文久久不卡 | 婷婷综合一区 | a视频在线免费观看 | 一区国产在线 | 农村少妇久久久久久久 | 欧美影院一区二区三区 | 免费国产一级 | 国产熟妇与子伦hd | 日韩成人午夜 | 成人精品三级av在线看 | 欧美偷拍少妇精品一区 | 岛国精品一区二区三区 | 成人a级片| 永久av网站 | 伊人操 | 久久xxxx | 都市激情国产精品 | 国产精品无码专区av在线播放 | 五月激情婷婷网 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 羞辱狗奴的句子有哪些 | 亚洲欧美第一 | 国产黄色av网站 | 色妻av| 竹菊影视一区二区三区 | 99久草| 精品无码一区二区三区 | 天天干天天谢 | 黑丝啪啪| 亚洲精品a级 | 天天干夜夜爱 | 精品国产亚洲一区二区麻豆 | 欧美性猛交xxxx偷拍洗澡 | 正在播放超嫩在线播放 | 久久天天躁狠狠躁夜夜躁2014 | 成年人毛片 | 亚洲精品视频免费看 | 色多多在线观看 | 草久久久久 | 一区久久久 | 91欧美一区二区 | 少妇激情偷人三级 | 国内精品久久久久久久久久 | 性一交一乱一色一免费无遮挡 | 久久伊人亚洲 | 动漫3d精品一区二区三区乱码 | 欧美黑人狂野猛交老妇 | 亚洲欧美乱综合图片区小说区 | 亚洲天堂五月 | 精品一区二区三区免费观看 | 亚洲第6页 | 国产黄色在线播放 | 国产美女作爱全过程免费视频 | 亚洲天堂中文字幕在线 | 强公把我次次高潮hd | 国产真实的和子乱拍在线观看 | 欧美色淫| 大陆极品少妇内射aaaaaa | 天天操夜夜爱 | 无码少妇一区二区 | 国产精品尤物视频 | 国产成人精品亚洲日本在线观看 | av中文资源网 | 一级片aaa| 99久久久无码国产 | 久久久久女教师免费一区 | 琪琪av在线 | 国产主播av在线 | 激情欧美网站 | 日本簧片在线观看 | 91尤物视频| 国产又爽又黄的激情精品视频 | 玉米地疯狂的吸允她的奶视频 | 国产美女毛片 | 禁断介护老人中文字幕 | 九九热视频在线免费观看 | 欧美激情欧美激情在线五月 | www在线观看国产 | 男人狂揉女人下部视频 | av高清一区二区 | 狠狠操影视 | 国产免费午夜 | 色综合99 | 久久高清内射无套 | 午夜精品999 | 这里只有久久精品 | 日本艳妇 | 精品国产av一区二区三区 | 天天想你在线观看完整版电影免费 | 日本一二三视频 | 自拍偷拍亚洲综合 | 久久影院午夜理论片无码 | av资源网站| 免费久久久久久 | 国产男男gay网站 | 免看一级a毛片一片成人不卡 | www.av欧美|