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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題面:洛谷傳送門?BZOJ傳送門

最大流神題

把點權轉化為邊權,切糕里每個點$(i,j,k)$向$(i,j,k+1)$連一條流量為$v(i,j,k)$的邊

源點$S$向第$1$層的點連邊,第$R+1$層的點向$T$連邊,流量均為$inf$

跑最大流,最大流的流量就是答案

因為每條縱軸都取了最小的$v$,被割掉的邊就是最小的$v$所在的邊

然而題目里還有限制,相鄰兩個縱軸取值的位置相差的距離不能超過$D$

如何處理這個限制呢?

每個點$(i,j,k)$向$(x,y,k-D)$連流量為$inf$的邊,$(x,y)$是$(i,j)$相鄰的縱軸

假設縱軸$(i,j)$的割點是$(i,j,k)$

如果$(x,y)$的割點在$(x,y,k-D)$下面,一定會有一條流量從縱軸$(i,j)$流到$(x,y)$里,然后向上流到匯點$T$

巧妙地解決了距離的限制問題

1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define N1 67010 5 #define M1 400010 6 #define L1 45 7 using namespace std; 8 const int inf=0x3f3f3f3f; 9 10 int gint() 11 { 12 int ret=0,fh=1;char c=getchar(); 13 while(c<'0'||c>'9'){if(c=='-')fh=-1;c=getchar();} 14 while(c>='0'&&c<='9'){ret=ret*10+c-'0';c=getchar();} 15 return ret*fh; 16 } 17 struct Edge{ 18 int to[M1<<1],nxt[M1<<1],flow[M1<<1],head[N1],cte; 19 void ae(int u,int v,int f) 20 { 21 cte++; to[cte]=v; nxt[cte]=head[u]; 22 head[u]=cte; flow[cte]=f; 23 } 24 }e; 25 26 int dep[N1],que[M1],cur[N1],n,m,h,D,hd,tl,S,T; 27 int bfs() 28 { 29 int x,j,v; 30 memset(dep,-1,sizeof(dep)); memcpy(cur,e.head,sizeof(cur)); 31 hd=1,tl=0; que[++tl]=S; dep[S]=0; 32 while(hd<=tl) 33 { 34 x=que[hd++]; 35 for(j=e.head[x];j;j=e.nxt[j]) 36 { 37 v=e.to[j]; 38 if( dep[v]==-1 && e.flow[j]>0 ) 39 { 40 dep[v]=dep[x]+1; 41 que[++tl]=v; 42 } 43 } 44 } 45 return dep[T]!=-1; 46 } 47 int dfs(int x,int limit) 48 { 49 int j,v,flow,ans=0; 50 if(!limit||x==T) return limit; 51 for(j=cur[x];j;j=e.nxt[j]) 52 { 53 v=e.to[j]; cur[x]=j; 54 if( dep[v]==dep[x]+1 && (flow=dfs(v,min(limit,e.flow[j]))) ) 55 { 56 e.flow[j]-=flow; limit-=flow; 57 e.flow[j^1]+=flow; ans+=flow; 58 if(!limit) break; 59 } 60 } 61 return ans; 62 } 63 int Dinic() 64 { 65 int mxflow=0,j,v,ans=0; 66 while(bfs()) 67 mxflow+=dfs(S,inf); 68 return mxflow; 69 } 70 71 int xx[4]={-1,0,1,0},yy[4]={0,1,0,-1}; 72 int v[L1][L1][L1],id[L1][L1][L1]; 73 inline int check(int x,int y){return (x<1||y<1||x>n||y>m)?0:1;} 74 75 int main() 76 { 77 scanf("%d%d%d%d",&n,&m,&h,&D); 78 int i,j,k,x,y,w,p; e.cte=1; S=0; T=n*m*(h+1)+1; 79 for(k=1;k<=h+1;k++) for(i=1;i<=n;i++) for(j=1;j<=m;j++) id[k][i][j]=(k-1)*n*m+(i-1)*m+j; 80 for(k=1;k<=h;k++) for(i=1;i<=n;i++) for(j=1;j<=m;j++) 81 { 82 w=v[k][i][j]=gint(), x=id[k][i][j]; 83 e.ae(x,x+n*m,w), e.ae(x+n*m,x,0); 84 if(k<=D) continue; 85 //x+=n*m; 86 for(p=0;p<4;p++) 87 { 88 if(!check(i+xx[p],j+yy[p])) continue; 89 y=id[k-D][i+xx[p]][j+yy[p]]; 90 e.ae(x,y,inf); e.ae(y,x,0); 91 } 92 } 93 for(i=1;i<=n;i++) for(j=1;j<=m;j++) e.ae(S,id[1][i][j],inf), e.ae(id[1][i][j],S,0); 94 for(i=1;i<=n;i++) for(j=1;j<=m;j++) e.ae(id[h+1][i][j],T,inf), e.ae(T,id[h+1][i][j],0); 95 printf("%d\n",Dinic()); 96 return 0; 97 }

?

轉載于:https://www.cnblogs.com/guapisolo/p/10350290.html

總結

以上是生活随笔為你收集整理的BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美亚洲色综久久精品国产 | 日本色站| 校园春色亚洲激情 | 中国大陆高清aⅴ毛片 | 黄色av网站在线看 | 三上悠亚人妻中文字幕在线 | 天堂av2021| 国产成人麻豆精品午夜在线 | 亚洲玖玖爱| 网站免费黄色 | 三级视频在线看 | 九九在线精品视频 | 精品国产av一区二区三区 | 色大师在线观看 | 欧美人与牲动xxxx | 97人妻精品一区二区三区动漫 | 欧美精品在线观看一区二区 | 四虎永久免费在线观看 | 天天射天天草 | 色中文字幕 | 色香蕉在线 | 天堂俺去俺来也www 欧美大片在线播放 | 国产a国产片国产 | 波多野结衣人妻 | 日韩精品av一区二区三区 | 嫩操影院| 日韩理论片在线观看 | 日韩中文字幕视频在线观看 | 黄在线免费 | 黄瓜视频在线免费观看 | 亚洲一级淫片 | 国产精品视频免费 | 美女穴穴 | 成人免费毛片高清视频 | 亚洲天堂2013| 精品国偷自产在线 | 偷拍视频一区二区 | 99色在线观看 | 最新毛片网 | 在线观看日本视频 | 青娱乐国产在线 | 一起草最新网址 | 亚洲国产午夜 | 国产精品一区二区三区久久 | 欧美一区三区三区高中清蜜桃 | 91精品久久久久久久久中文字幕 | 亚欧洲精品在线视频免费观看 | 九九热免费在线 | 一级成人黄色片 | 欧美日本中文字幕 | 天天摸天天看 | 人与动物2免费观看完整版电影高清 | a级无遮挡超级高清-在线观看 | 少女与动物高清版在线观看 | 亚洲最大黄网 | 亲子乱一区二区三区 | 亚洲免费一级 | 欧美精品自拍偷拍 | 国产乱码久久久 | 91免费精品视频 | 韩国美女视频在线观看18 | 日韩国产精品视频 | 一二区在线视频 | 日韩电影一区二区在线观看 | 日韩作爱视频 | 三级网站免费看 | 国产黄色精品 | 国产成人综合精品 | 天天狠天天透 | 日韩的一区二区 | av毛片精品 | 欧洲丰满少妇做爰 | 国产男人的天堂 | 香蕉午夜视频 | av资源共享 | 波多野结衣亚洲一区 | 欧美日韩国产一区二区在线观看 | 一曲二曲三曲在线观看中文字幕动漫 | 豆花视频在线播放 | 欧美交换国产一区内射 | 亚洲最大视频网站 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 久久精品国产亚洲av成人 | 中国黄色免费网站 | 成人拍拍视频 | www.国产com | 欧美大色网 | 色人阁av| 精品美女在线 | 国产精品高潮AV无码 | 精品99在线观看 | 爆操白虎 | 伊人22| 蜜桃精品视频在线观看 | 先锋影音av在线资源 | 亚洲视频一 | 国产视频69 | 久久人人草 | 亚洲天堂视频网站 |