亚洲精品无码久久不卡丨熟女少妇人妻中文字幕丨午夜内射高潮视频丨视频区国产亚洲.欧美丨少妇三级全黄

當前位置: 首頁 > news >正文

不能制作網頁的軟件是/邯鄲網站建設優化

不能制作網頁的軟件是,邯鄲網站建設優化,大連網站建設比較好的公司,免費網絡推廣方式刷題記錄 101. 孤島的總面積DFSBFS 102. 沉沒孤島DFSBFS *103. 水流問題*104. 建造最大島嶼 101. 孤島的總面積 題目地址 本題要求不與矩陣邊緣相連的孤島的總面積。先將與四個邊緣相連的島嶼變為海洋,再統計剩余的孤島的總面積。無需再標識訪問過的結點&#xff…

刷題記錄

  • 101. 孤島的總面積
    • DFS
    • BFS
  • 102. 沉沒孤島
    • DFS
    • BFS
  • *103. 水流問題
  • *104. 建造最大島嶼

101. 孤島的總面積

題目地址

本題要求不與矩陣邊緣相連的孤島的總面積。先將與四個邊緣相連的島嶼變為海洋,再統計剩余的孤島的總面積。無需再標識訪問過的結點,因為訪問過后都變為海洋了。

時間復雜度: O ( n 2 ) O(n^2) O(n2)
空間復雜度: O ( n 2 ) O(n^2) O(n2)

DFS

// c++
#include<bits/stdc++.h>
using namespace std;
int direction[4][2] = {0, 1, 0, -1, -1, 0, 1, 0};
int result = 0;void pre_dfs(vector<vector<int>> &matrix, int x, int  y){matrix[x][y] = 0;result++;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix[0].size() || nextx<0 || nexty<0) continue;if(matrix[nextx][nexty]){matrix[nextx][nexty] = 0;pre_dfs(matrix, nextx, nexty);}}
}int main(){int n,m;cin>>n>>m;vector<vector<int>> matrix(n, vector<int>(m, 0));for(int i=0; i<n; i++){for(int j=0; j<m; j++){cin>>matrix[i][j];}}for(int i=0; i<n; i++) {if(matrix[i][0]){pre_dfs(matrix, i, 0);}if(matrix[i][m-1]){pre_dfs(matrix, i, m-1);}}for(int j=0; j<m; j++){if(matrix[0][j]){pre_dfs(matrix, 0, j);}if(matrix[n-1][j]){pre_dfs(matrix, n-1, j);   }}result = 0;for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(matrix[i][j]){pre_dfs(matrix, i, j);   }}}cout<<result;return 0;
}

BFS

// c++
#include<bits/stdc++.h>
using namespace std;
int direction[4][2] = {0, 1, 0, -1, -1, 0, 1, 0};
int result = 0;void pre_dfs(vector<vector<int>> &matrix, int x, int  y){matrix[x][y] = 0;result++;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix[0].size() || nextx<0 || nexty<0) continue;if(matrix[nextx][nexty]){matrix[nextx][nexty] = 0;pre_dfs(matrix, nextx, nexty);}}
}void pre_bfs(vector<vector<int>> &matrix, int x, int  y){queue<pair<int, int>> que;que.push({x, y});matrix[x][y] = 0;result++;while(!que.empty()){pair<int, int> cur = que.front();que.pop();int curx = cur.first;int cury = cur.second;for(int i=0; i<4; i++){int nextx = curx + direction[i][0];int nexty = cury + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix[0].size() || nextx<0 || nexty<0) continue;if(matrix[nextx][nexty]){matrix[nextx][nexty] = 0;result++;que.push({nextx, nexty});}}}
}int main(){int n,m;cin>>n>>m;vector<vector<int>> matrix(n, vector<int>(m, 0));for(int i=0; i<n; i++){for(int j=0; j<m; j++){cin>>matrix[i][j];}}/*// dfsfor(int i=0; i<n; i++) {if(matrix[i][0]){pre_dfs(matrix, i, 0);}if(matrix[i][m-1]){pre_dfs(matrix, i, m-1);}}for(int j=0; j<m; j++){if(matrix[0][j]){pre_dfs(matrix, 0, j);}if(matrix[n-1][j]){pre_dfs(matrix, n-1, j);   }}*/// bfsfor(int i=0; i<n; i++) {if(matrix[i][0]){pre_bfs(matrix, i, 0);}if(matrix[i][m-1]){pre_bfs(matrix, i, m-1);}}for(int j=0; j<m; j++){if(matrix[0][j]){pre_bfs(matrix, 0, j);}if(matrix[n-1][j]){pre_bfs(matrix, n-1, j);   }}result = 0;for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(matrix[i][j]){// pre_dfs(matrix, i, j);   pre_bfs(matrix, i, j);}}}cout<<result;return 0;
}

102. 沉沒孤島

題目地址

本題是上一題的反向操作

先把非孤島做訪問標記,再對剩余陸地進行操作。

時間復雜度: O ( n 2 ) O(n^2) O(n2)
空間復雜度: O ( n 2 ) O(n^2) O(n2)

DFS

// c++
#include<bits/stdc++.h>
using namespace std;
int direction[][2] = {0, 1, 0, -1, -1, 0, 1, 0};
void pre_dfs(const vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){visited[x][y] = true;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){// visited[nextx][nexty] = true;pre_dfs(matrix, visited, nextx, nexty);}}
}void dfs(vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){matrix[x][y] = 0;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){visited[nextx][nexty] = true;dfs(matrix, visited, nextx, nexty);}}
}
int main(){int n,m;cin>>n>>m;vector<vector<int>> matrix(n, vector<int>(m, 0));vector<vector<bool>> visited(n, vector<bool>(m, false));for(int i=0; i<n; i++){for(int j=0; j<m; j++){cin>>matrix[i][j];}}for(int i=0; i<n; i++){if(matrix[i][0] && !visited[i][0]) pre_dfs(matrix, visited, i, 0);if(matrix[i][m-1] && !visited[i][m-1]) pre_dfs(matrix, visited, i, m-1);}for(int j=0; j<m; j++){if(matrix[0][j] && !visited[0][j]) pre_dfs(matrix, visited, 0, j);if(matrix[n-1][j] && !visited[n-1][j]) pre_dfs(matrix, visited, n-1, j);}for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(matrix[i][j] && !visited[i][j]){visited[i][j] = true;dfs(matrix,visited, i, j);}}for(int j=0; j<m; j++) cout<<matrix[i][j]<<" ";cout<<endl;}return 0;
}

BFS

//c++
#include<bits/stdc++.h>
using namespace std;
int direction[][2] = {0, 1, 0, -1, -1, 0, 1, 0};
void pre_dfs(const vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){visited[x][y] = true;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){// visited[nextx][nexty] = true;pre_dfs(matrix, visited, nextx, nexty);}}
}void dfs(vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){matrix[x][y] = 0;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){visited[nextx][nexty] = true;dfs(matrix, visited, nextx, nexty);}}
}void pre_bfs(const vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){visited[x][y] = true;queue<pair<int, int>> que;que.push({x,y});while(!que.empty()){pair<int, int> cur = que.front();que.pop();int curx = cur.first;int cury = cur.second;for(int i=0; i<4; i++){int nextx = curx + direction[i][0];int nexty = cury + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){visited[nextx][nexty] = true;que.push({nextx, nexty});}}}
}void bfs(vector<vector<int>>& matrix,vector<vector<bool>>& visited,int x, int y){visited[x][y] = true;matrix[x][y] = 0;queue<pair<int, int>> que;que.push({x,y});while(!que.empty()){pair<int, int> cur = que.front();que.pop();int curx = cur.first;int cury = cur.second;for(int i=0; i<4; i++){int nextx = curx + direction[i][0];int nexty = cury + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix.size() ||nextx<0 || nexty<0) continue;if(matrix[nextx][nexty] && !visited[nextx][nexty]){visited[nextx][nexty] = true;matrix[nextx][nexty] = 0;que.push({nextx, nexty});}}}
}
int main(){int n,m;cin>>n>>m;vector<vector<int>> matrix(n, vector<int>(m, 0));vector<vector<bool>> visited(n, vector<bool>(m, false));for(int i=0; i<n; i++){for(int j=0; j<m; j++){cin>>matrix[i][j];}}/*// dfsfor(int i=0; i<n; i++){if(matrix[i][0] && !visited[i][0]) pre_dfs(matrix, visited, i, 0);if(matrix[i][m-1] && !visited[i][m-1]) pre_dfs(matrix, visited, i, m-1);}for(int j=0; j<m; j++){if(matrix[0][j] && !visited[0][j]) pre_dfs(matrix, visited, 0, j);if(matrix[n-1][j] && !visited[n-1][j]) pre_dfs(matrix, visited, n-1, j);}*/// bfsfor(int i=0; i<n; i++){if(matrix[i][0] && !visited[i][0]) pre_bfs(matrix, visited, i, 0);if(matrix[i][m-1] && !visited[i][m-1]) pre_bfs(matrix, visited, i, m-1);}for(int j=0; j<m; j++){if(matrix[0][j] && !visited[0][j]) pre_bfs(matrix, visited, 0, j);if(matrix[n-1][j] && !visited[n-1][j]) pre_bfs(matrix, visited, n-1, j);}for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(matrix[i][j] && !visited[i][j]){// visited[i][j] = true;// dfs(matrix,visited, i, j);bfs(matrix,visited, i, j);}}for(int j=0; j<m; j++) cout<<matrix[i][j]<<" ";cout<<endl;}return 0;
}

*103. 水流問題

題目地址

使用兩個標識訪問的數組分別從兩組邊界出發進行dfs遍歷,使用從低向高流(反向流)來分別記錄兩組邊界的結點。最后兩組邊界的交集就是本題答案。
思路

時間復雜度: O ( m ? n ) O(m*n) O(m?n)
空間復雜度: O ( m ? n ) O(m*n) O(m?n)

// c++
#include<bits/stdc++.h>
using namespace std;
int direction[][2] = {0, 1, 0, -1, -1, 0, 1, 0};
void dfs(const vector<vector<int>> &matrix, vector<vector<bool>> &visited,int x, int y){visited[x][y] = true;for(int i=0; i<4; i++){int nextx = x + direction[i][0];int nexty = y + direction[i][1];if(nextx>=matrix.size() || nexty>=matrix[0].size() || nextx<0 || nexty<0) continue;if(matrix[x][y]>matrix[nextx][nexty]) continue;if(!visited[nextx][nexty]) dfs(matrix, visited, nextx, nexty);}
}int main(){int n,m;cin>>n>>m;vector<vector<int>> matrix(n, vector<int>(m, 0));vector<vector<bool>> first(n, vector<bool>(m, false));vector<vector<bool>> second(n, vector<bool>(m, false));for(int i=0; i<n; i++){for(int j=0; j<m; j++){cin>>matrix[i][j];}}for(int i=0; i<n; i++){dfs(matrix, first, i, 0);dfs(matrix, second, i, m-1);}for(int j=0; j<m; j++){dfs(matrix, first, 0, j);dfs(matrix, second, n-1, j);}for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(first[i][j] && second[i][j]) cout<<i<<" "<<j<<endl;}}return 0;   
}

*104. 建造最大島嶼

題目地址

題解思路

時間復雜度: O ( n ) O(n) O(n)
空間復雜度: O ( n ) O(n) O(n)

// c++
http://www.jialimach.com/news/352.html

相關文章:

  • 香港網站做購物商城會罰款嗎/網頁設計與網站建設教程
  • 自己做的網站怎么在百度可以查到/分類達人的作用
  • 開發網站報價方案/百度推廣登錄官網入口
  • 農家樂網站免費模板/如何屏蔽百度廣告推廣
  • 網站開發下載哪個/國色天香站長工具
  • 珠海單位網站建設/青島網站建設制作
  • 威縣企業做網站/seo優化代理
  • 如果在瀏覽器上做一網站廣告大約需要多少錢/螺螄粉營銷策劃方案
  • 做木材加工的企業網站首頁/專業精準網絡營銷推廣
  • 大姚網站建設/百度提問登陸入口
  • 用vs2012做asp網站/石家莊谷歌seo
  • 茶網站建設實訓報告/百度收錄要多久
  • 蘇州無錫外貿網站建設/優化大師是什么
  • 睢寧網站制作/推廣手段
  • 做餅的網站/人民網疫情最新消息
  • 自己做網站軟件/2021拉新推廣傭金排行榜
  • 網站建設開發服務費怎么做賬/網絡營銷和電子商務的區別
  • vr 全景 網站建設/廣州搜索排名優化
  • wordpress 主題 mnews/網站內容優化關鍵詞布局
  • 來賓網站建設/營銷推廣運營
  • 北海哪家做網站/個人網頁設計制作網站模板
  • 蘇州網站建設基礎型/網站推廣120種方法
  • 好的建筑設計網站推薦/app制作一個需要多少錢
  • 設計派單平臺/百度關鍵詞優化的意思
  • 黑客網站免費網站/網絡營銷推廣的目的
  • 高端網站制作網站設計/百度安裝到桌面
  • 做網站和網頁有什么區別/自媒體培訓學校
  • 專業類網站/公司域名注冊查詢
  • 兔展制作h5頁面模板/天津債務優化公司
  • 建設網站iss/優化大師電腦版官網
  • 主站蜘蛛池模板: 大胆日本熟妇xxxx| 在线观看国产h成人网站| 色综合视频一区二区三区| 人妻三级日本三级日本三级极| 狠狠色成人一区二区三区| 免费特黄夫妻生活片| 成人无码α片在线观看不卡| 国产成人一区二区三区| 午夜免费男女aaaa片| 男女18禁啪啪无遮挡| 天天鲁在视频在线观看| av中文无码乱人伦在线观看| 51精品国产人成在线观看| 久久久久久国产精品mv | 国产又爽又大又黄a片软件 | 超碰97人人模人人爽人人喊| 无码精品国产va在线观看| 日韩av一国产av一中文字慕| 欧美多毛肥妇视频| 99久久成人精品国产网站 | 秋霞久久久久久一区二区| 夜夜躁狠狠躁2021| 色偷偷色噜噜狠狠网站久久| 国产亚洲精品视觉盛宴| 国产无套内射久久久国产| 色综合久久久久综合一本到桃花网| 国产成人精品一区二区秒播| 深夜爽爽无遮无挡视频| 成人无码av一区二区| 亚洲日韩日本中文在线| 亚洲色www永久网站| 欧美v成 人在线观看| 国产免费一卡二卡三卡四卡| 亚洲成a人无码av波多野| 欲香欲色天天天综合和网| 久久精品国产一区二区三区肥胖| 国产涩涩视频在线观看| 亚洲高清成人aⅴ片在线观看| 欧美精品无码久久久久久| 日本午夜免a费看大片中文4| 最新无码人妻在线不卡|