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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[SCOI2007] 蜥蜴 (最大流)

發布時間:2025/4/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SCOI2007] 蜥蜴 (最大流) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[SCOI2007] 蜥蜴

題目背景

07四川省選

題目描述

在一個r行c列的網格地圖中有一些高度不同的石柱,一些石柱上站著一些蜥蜴,你的任務是讓盡量多的蜥蜴逃到邊界外。

每行每列中相鄰石柱的距離為1,蜥蜴的跳躍距離是d,即蜥蜴可以跳到平面距離不超過d的任何一個石柱上。石柱都不穩定,每次當蜥蜴跳躍時,所離開的石柱高度減1(如果仍然落在地圖內部,則到達的石柱高度不變),如果該石柱原來高度為1,則蜥蜴離開后消失。以后其他蜥蜴不能落腳。任何時刻不能有兩只蜥蜴在同一個石柱上。

輸入輸出格式

輸入格式:

輸入第一行為三個整數r,c,d,即地圖的規模與最大跳躍距離。以下r行為石柱的初始狀態,0表示沒有石柱,1~3表示石柱的初始高度。以下r行為蜥蜴位置,“L”表示蜥蜴,“.”表示沒有蜥蜴。

輸出格式:

輸出僅一行,包含一個整數,即無法逃離的蜥蜴總數的最小值。

輸入輸出樣例

輸入樣例#1:

5 8 2
00000000
02000000
00321100
02000000
00000000
........
........
..LLLL..
........
........

輸出樣例#1:

1

說明

100%的數據滿足:\(1<=r, c<=20, 1<=d<=4\)

Solution

看到題目中的柱子每經過一次高度-1馬上想到網絡流,每根柱子的高度就是網絡中一條邊的容量

其實網絡流的題目一般就是考建邊,建完以后套個最大流模板就行了

那么怎么建邊呢?

建一個源點S,匯點T(都是虛點)

  • 考慮拆點,我們把一個柱子拆成入點和出點,把這兩個點之間建一條容量為柱子高度x的邊,代表這棵柱子最多只能經過x次
  • 對于能夠到達地圖外的點,我們之間從它的出點向匯點建一條容量為inf的邊
  • 枚舉兩個柱子,在地圖上歐幾里得距離小于最大跳躍距離的點之間建一條容量為inf的邊
  • 由源點向每個蜥蜴所在的點建一條容量為1的邊,代表這個點有一個蜥蜴
  • Code

    #include<bits/stdc++.h> #define rg register #define il inline #define Min(a,b) (a)<(b)?(a):(b) #define Max(a,b) (a)>(b)?(a):(b) #define dis(a,b,x,y) ((x-a)*(x-a)+(y-b)*(y-b)) using namespace std;const int N=100,M=1e6+10; const int inf=2e9;void in(int &ans) {ans=0; char i=getchar();while(i<'0' || i>'9') i=getchar();while(i>='0' && i<='9') ans=(ans<<1)+(ans<<3)+i-'0',i=getchar(); }int n,m,d,cur=1,ans; int S,T,NN,c1,c2,sum; char ch; int to[M<<1],nex[M<<1],head[M],cap[M<<1],lev[M],curr[M]; int c[N][N],p[N][N]; int l[M<<1],r[M<<1];struct node {int l,r; }; vector<node>v;il void add(int a,int b,int c) {to[++cur]=b,nex[cur]=head[a];cap[cur]=c,head[a]=cur; }il void read() {NN=n*m; T=2*n*m+1;for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {cin>>ch; p[i][j]=++c1;c[i][j]=ch-'0';if(c[i][j]) l[++c2]=i,r[c2]=j;}}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++) {cin>>ch; if(ch=='L') sum++,v.push_back((node){i,j});} }il void init() {for(int i=1;i<=c2;i++) {add(p[l[i]][r[i]],p[l[i]][r[i]]+NN,c[l[i]][r[i]]);add(p[l[i]][r[i]]+NN,p[l[i]][r[i]],0);if(l[i]<=d || r[i]<=d || l[i]+d>n || r[i]+d>m) {add(p[l[i]][r[i]]+NN,T,inf);add(T,p[l[i]][r[i]]+NN,0);}}for(int i=1;i<=c2;i++)for(int j=1;j<=c2;j++) {if(dis(l[i],r[i],l[j],r[j])<=d*d && i!=j) {add(p[l[i]][r[i]]+NN,p[l[j]][r[j]],inf);add(p[l[j]][r[j]],p[l[i]][r[i]]+NN,0);}}for(int i=0;i<sum;i++) {add(S,p[v[i].l][v[i].r],1);add(p[v[i].l][v[i].r],S,0);} }bool bfs(int s,int t) {queue<int>q; memset(lev,-1,sizeof(lev));q.push(s); lev[s]=0;while(!q.empty()) {int u=q.front(); q.pop();for(int i=head[u];i;i=nex[i]) {if(lev[to[i]]==-1 && cap[i]>0) {lev[to[i]]=lev[u]+1;q.push(to[i]);}}}return lev[t]!=-1; }int dfs(int s,int f,int t,int rest=0) {if(s==t) return f;for(int i=head[s];i;i=nex[i]) {if(lev[to[i]]==lev[s]+1 && cap[i]>0) {int r=dfs(to[i],Min(cap[i],f-rest),t);if(r>0) rest+=r,cap[i]-=r,cap[i^1]+=r;}}if(!rest) lev[s]=-1;return rest; }int main() {in(n),in(m),in(d);read(); init();while(bfs(S,T))while(int c=dfs(S,inf,T)) ans+=c;printf("%d\n",sum-ans);return 0; }

    博主蒟蒻,隨意轉載.但必須附上原文鏈接

    http://www.cnblogs.com/real-l/

    轉載于:https://www.cnblogs.com/real-l/p/9622334.html

    總結

    以上是生活随笔為你收集整理的[SCOI2007] 蜥蜴 (最大流)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产成人亚洲欧洲在线 | 欧美天堂网站 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久九九精品视频 | 北条麻妃一区二区三区在线观看 | 国产综合久久久久 | 麻豆小视频| 91av中文字幕| 成人av在线网站 | 好吊操这里有精品 | 亚洲美女一区二区三区 | 成人午夜精品视频 | 乱色欧美 | 一级片黄色片 | www夜插内射视频网站 | 日韩欧美在线观看免费 | 国产视频久久久 | 90岁老太婆乱淫 | 一级片在线 | 国产又粗又黄又爽的视频 | 国产h视频 | 亚洲自拍偷拍综合 | 日本一区二区三区成人 | 黄瓜视频91| 涩涩视频在线观看免费 | 久久久国产精品成人免费 | 国产一区二区伦理 | 亚洲无码高清精品 | 黄色大片免费网站 | 亚洲大胆人体 | 欧美视频一区二区三区四区在线观看 | 国产aⅴ一区二区三区 | 国产精品1000部啪视频 | 亚洲小说图片区 | 日日碰碰 | 超碰一区 | 天天色综合1 | 华丽的外出在线 | 精品人妻无码一区二区性色 | 欧美精品在线视频观看 | 少妇无码吹潮 | 精品日日夜夜 | 欧美456| 毛片基地视频 | 国产高潮国产高潮久久久91 | 一级片特黄 | 亚洲自偷自偷偷色无码中文 | 欧美日韩国产一区二区在线观看 | 日韩三级网| 成人免费视频国产免费麻豆 | 久久久久一区二区精码av少妇 | 91福利在线免费观看 | 午夜国产福利 | 欧洲av在线播放 | 在线婷婷 | 久久久久亚洲av无码专区 | 波多野结衣在线看 | 久久久久久久极品内射 | 国产免费成人 | 最新国产拍偷乱偷精品 | 亚洲自拍偷拍综合 | 西野翔之公侵犯中文字幕 | 日产亚洲一区二区三区 | av免费播放网站 | 午夜激情电影在线观看 | 成片免费观看视频 | 少妇精品导航 | 在线www | 泰坦尼克号3小时49分的观看方法 | 在线免费观看国产 | 久久久青青| 中文字幕亚洲成人 | a天堂中文网 | 非洲黄色一级片 | 在线黄色免费网站 | 国产浮力影院 | 午夜天堂网 | 欧美视频一二区 | 中文字幕人妻熟女人妻a片 麻豆91视频 | 亚洲人视频在线观看 | 99国产在线视频 | 久久国产免费视频 | 精品1卡二卡三卡四卡老狼 日韩三级网 | 大尺度在线观看 | 成人av资源网 | 日韩一区二区三区四区五区六区 | 女同av在线 | 成人福利一区二区三区 | 色婷婷av久久久久久久 | 999免费| 18禁肉肉无遮挡无码网站 | 精品麻豆一区二区 | 中国性xxx | 亚欧美色图 | 尤物视频在线免费观看 | 好吊操免费视频 | 免费在线观看成人 | 91精品推荐 | 国产精品无码一区二区三区三 |