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

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

USACO P1457 城堡 The Castle

2019-11-14 09:08:44
字體:
來源:轉載
供稿:網友

//代碼雖然長了點,但應該相當清楚吧~~~ //考慮一二問,只需dfs一遍即可求出答案(根據8>4+2+1,4>2+1,2>1,可以判斷哪邊有墻)

#include<cmath>#include<algorithm> #include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;struct node{ int x,y,zhi;};struct tree{ int PRex,prey;};int t[101][101];//用來記錄當前這個位置所在的聯通塊有多少個房間int a[101][101];//記錄題面的數據int b[101][101];//沒用int c[101][101];//表示當前位置東邊的墻推倒后能構造多大的房間int d[101][101];//表示當前位置北邊的墻推倒后能構造多大的房間node e[100010];//記錄豎著的墻所在位置以及推倒后構造的房間大小,便于排序node f[100010];//記錄橫著的墻所在位置以及推倒后構造的房間大小,便于排序int p[101][101];//dfs里的標記數組tree pre[101][101];//記錄這個位置是從哪個位置搜索而來int vis[101][101];//可以判斷兩個位置是否屬于同一房間int m,n;int cnt1,cnt2;int cnt;//同一個房間的每個位置的cnt相同int dfs(int x,int y){ vis[x][y]=cnt; p[x][y]=1; int ans=1; if(a[x][y]-8>=0){ a[x][y]-=8; } else{ if(!p[x+1][y]&&x+1<=n){ pre[x+1][y].prex=x; pre[x+1][y].prey=y; ans+=dfs(x+1,y); } } if(a[x][y]-4>=0){ a[x][y]-=4; } else{ if(y+1<=m&&!p[x][y+1]){ pre[x][y+1].prex=x; pre[x][y+1].prey=y; ans+=dfs(x,y+1); } } if(a[x][y]-2>=0){ a[x][y]-=2; } else{ if(x-1>=1&&!p[x-1][y]){ pre[x-1][y].prex=x; pre[x-1][y].prey=y; ans+=dfs(x-1,y); } } if(a[x][y]-1>=0){ a[x][y]-=1; } else{ if(y-1>=1&&!p[x][y-1]){ pre[x][y-1].prex=x; pre[x][y-1].prey=y; ans+=dfs(x,y-1); } } return ans;}bool cmp(node g,node h){ if(g.zhi==h.zhi){ if(g.y==h.y){ return g.x>h.x; } else{ return g.y<h.y; } } return g.zhi>h.zhi;}int main(){ memset(pre,0,sizeof(pre)); int i,j,k; scanf("%d%d",&m,&n); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ scanf("%d",&a[i][j]); } } int ans=0; int sum=0; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(!p[i][j]){ ++cnt; int tmp=dfs(i,j); ans=max(tmp,ans); sum++; t[i][j]=tmp; if(vis[i][j]!=vis[i][j+1])//判斷推倒后是否可以增加房間面積 c[i][j]+=t[i][j]; if(vis[i][j-1]!=vis[i][j]) c[i][j-1]+=t[i][j]; if(vis[i-1][j]!=vis[i][j]) d[i][j]+=t[i][j]; if(vis[i][j]!=vis[i+1][j]) d[i+1][j]+=t[i][j]; } else{ int u=i,v=j; while(pre[u][v].prex!=0&&pre[u][v].prey!=0){//找到最開始搜的那個點 int tmp=u; u=pre[u][v].prex; v=pre[tmp][v].prey; } t[i][j]=t[u][v]; if(vis[i][j]!=vis[i][j+1]) c[i][j]+=t[i][j]; if(vis[i][j-1]!=vis[i][j]) c[i][j-1]+=t[i][j]; if(vis[i-1][j]!=vis[i][j]) d[i][j]+=t[i][j]; if(vis[i][j]!=vis[i+1][j]) d[i+1][j]+=t[i][j]; } } } int max1=0,max2=0; for(i=0;i<=n+1;i++){ for(j=0;j<=m+1;j++){ e[++cnt1].x=i;e[cnt1].y=j;e[cnt1].zhi=c[i][j]; f[++cnt2].x=i;f[cnt2].y=j;f[cnt2].zhi=d[i][j]; } } sort(e+1,e+cnt1+1,cmp); sort(f+1,f+cnt2+1,cmp); printf("%d/n%d/n",sum,ans); if(e[1].zhi>f[1].zhi){//這里雖然比較冗雜,但按題目意思幾個if和else也就好了 printf("%d/n",e[1].zhi); printf("%d %d E/n",e[1].x,e[1].y); } else if(e[1].zhi==f[1].zhi){ if(e[1].x==f[1].x&&e[1].y==f[1].y){ printf("%d/n",f[1].zhi); printf("%d %d N/n",f[1].x,f[1].y); } else{ if(e[1].y<f[1].y){ printf("%d/n",e[1].zhi); printf("%d %d E/n",e[1].x,e[1].y); } else if(e[1].y==f[1].y){ if(e[1].x>f[1].x){ printf("%d/n",e[1].zhi); printf("%d %d E/n",e[1].x,e[1].y); } else{ printf("%d/n",f[1].zhi); printf("%d %d N/n",f[1].x,f[1].y); } } else{ printf("%d/n",f[1].zhi); printf("%d %d N/n",f[1].x,f[1].y); } } } else{ printf("%d/n",f[1].zhi); printf("%d %d N/n",f[1].x,f[1].y); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区黄| 亚洲在线免费观看| 国产欧美在线观看| 久久久久久久久久久免费精品| 欧美亚洲日本网站| 国产视频观看一区| 日韩国产欧美区| 成年无码av片在线| 97在线看免费观看视频在线观看| 国产v综合v亚洲欧美久久| 欧美日韩美女视频| 欧美成人精品一区二区三区| 欧美亚洲国产日韩2020| 成人观看高清在线观看免费| 欧美另类极品videosbest最新版本| 日韩中文字幕在线视频播放| 免费av在线一区| 日韩精品日韩在线观看| 日韩高清电影免费观看完整| 国产精品一区二区三区成人| 国产欧美日韩亚洲精品| 亚洲欧美国产精品久久久久久久| 97免费在线视频| 国产精品久久久久久av福利| 亚洲欧洲一区二区三区久久| 中文字幕久久久av一区| 亚洲性猛交xxxxwww| 欧美精品18videos性欧| 亚洲欧美精品suv| 在线亚洲午夜片av大片| www.99久久热国产日韩欧美.com| 久久精品国产亚洲精品2020| 亚洲第一中文字幕| 91精品国产综合久久男男| 日本精品视频在线| 成人在线中文字幕| 国产精品青草久久久久福利99| 欧美另类在线观看| 在线观看久久久久久| 亚洲一区www| 亚洲国产精久久久久久| 91精品国产91久久| 欧美午夜女人视频在线| 欧美日韩国产一中文字不卡| 欧美丰满少妇xxxxx做受| 久久久精品999| 日韩av一区二区在线| 97久久伊人激情网| 国产成人精品在线| 日韩人在线观看| 国产欧美日韩专区发布| 成人午夜在线影院| 欧美性受xxxx白人性爽| 亚洲精品大尺度| 日韩在线观看免费全集电视剧网站| 国产免费一区二区三区在线能观看| 国产国语刺激对白av不卡| 91久久嫩草影院一区二区| 国产成人一区二区三区电影| 69视频在线免费观看| 国产精品自拍视频| 色婷婷综合久久久久中文字幕1| 亚洲色图av在线| 一区二区三区天堂av| 亚洲影院色在线观看免费| 国产精品福利在线观看| 亚洲自拍av在线| 久久免费在线观看| 久久精品一本久久99精品| 91欧美精品午夜性色福利在线| 久热国产精品视频| 久久久av电影| 久久久精品视频在线观看| 91大神福利视频在线| 欧美成人午夜免费视在线看片| 日韩av网址在线观看| 日韩成人网免费视频| 亚州国产精品久久久| 亚洲第一精品夜夜躁人人躁| 欧美在线xxx| 欧美亚洲国产另类| 国产精品老女人精品视频| 亚洲日韩欧美视频一区| 精品福利在线观看| 亚洲精品www久久久久久广东| 丰满岳妇乱一区二区三区| 亚洲自拍在线观看| 欧美超级乱淫片喷水| 亚洲男女性事视频| 国产精品久久网| 欧美成人精品影院| 国产精品中文字幕在线| 久久色免费在线视频| 九九热最新视频//这里只有精品| 亚洲精品91美女久久久久久久| 色综合久久88色综合天天看泰| 777国产偷窥盗摄精品视频| 日韩av一卡二卡| 成人在线播放av| 成人欧美一区二区三区在线湿哒哒| 欧美在线视频免费观看| 国产一区深夜福利| 久久人人爽人人爽人人片av高清| 亚洲自拍欧美另类| 中文字幕日韩欧美精品在线观看| 国产精品视频地址| 欧美中文在线观看国产| 亚洲国内精品视频| 亚洲成人网在线| 亚洲精品国产电影| 国产视频精品免费播放| 欧洲午夜精品久久久| 久久精品成人欧美大片| 成人亚洲综合色就1024| 亚洲久久久久久久久久| 亚洲精品日韩激情在线电影| 亚洲欧洲黄色网| 日韩在线中文字| 久久久久久久久电影| 亚洲成av人影院在线观看| 日韩中文字幕免费看| 欧美性色视频在线| 亚洲一区二区三| 草民午夜欧美限制a级福利片| 欧美高清自拍一区| 亚洲精品网站在线播放gif| 91豆花精品一区| 日韩视频免费在线观看| 国产91色在线|| 中文字幕欧美专区| 日本精品久久久久久久| 91色视频在线观看| 日韩欧美国产视频| 欧美成人高清视频| 欧美xxxx14xxxxx性爽| 国产精品黄色av| 777午夜精品福利在线观看| 91亚洲va在线va天堂va国| 日本在线观看天堂男亚洲| 国产精品一久久香蕉国产线看观看| 日韩精品在线视频| 庆余年2免费日韩剧观看大牛| 欧洲成人午夜免费大片| 91欧美精品午夜性色福利在线| 亚洲国产精彩中文乱码av| 国产成一区二区| 九九热这里只有在线精品视| 成人激情视频在线| 欧美色道久久88综合亚洲精品| 日本亚洲欧美成人| 欧美日韩激情美女| 国产成+人+综合+亚洲欧美丁香花| 国产成人综合一区二区三区| 日韩成人激情视频| 91精品久久久久久久久青青| 日韩欧美国产视频| 久久久999精品视频| 最近中文字幕2019免费| 国产精品免费网站| 日韩国产欧美区| 亚洲国产精品电影| 欧美俄罗斯乱妇| 久久精品视频一| 午夜剧场成人观在线视频免费观看|