hdu 5925 搜索

題意:一個圖,n個障礙,求聯通塊

?

思路: 圖很大,障礙物很少。把聯通的障礙物塊摳出來,然后暴力。

?

代碼:

?

#include<bits/stdc++.h>
using namespace std;
#define MEM(a,b) memset(a,b,sizeof(a))
#define bug puts("bug");
#define PB push_back
#define MP make_pair
#define X first
#define Y second
typedef unsigned long long ll;
typedef pair<int,int> pii;
const int maxn=1e5+10;
const int mod=1000000007;
using namespace std;
int t,n,r,c,x,y,ca;
pii pp[maxn];
int dir[8][2]={1,0,1,-1,1,1,0,1,0,-1,-1,1,-1,0,-1,-1};
int dd[4][2]={1,0,0,1,0,-1,-1,0};
int mp[205][205],vp[205][205];
vector<ll> ans;
set<pii> vis,S;
int dfs(int x,int y,int mix,int miy,int mxx,int mxy){int ret=1,tmp;vp[x][y]=1;for(int i=0;i<4;i++){int xx=x+dd[i][0],yy=y+dd[i][1];if(xx<0&&mix!=1) ret=-1;if(yy<0&&miy!=1) ret=-1;if(xx>mxx-mix&&mxx!=r) ret=-1;if(yy>mxy-miy&&mxy!=c) ret=-1;if(xx<0||yy<0||xx>mxx-mix||yy>mxy-miy||vp[xx][yy]||mp[xx][yy])continue;tmp=dfs(xx,yy,mix,miy,mxx,mxy);if(tmp==-1||ret==-1) ret=-1;else ret+=tmp;}return ret;
}void bfs(pii P){queue<pii> Q;Q.push(P);vis.insert(P);vector<pii> tp;int mix=1e9+10,miy=1e9+10,mxx=-1,mxy=-1;while(!Q.empty()){pii t=Q.front();mix=min(mix,t.X);miy=min(miy,t.Y);mxx=max(mxx,t.X);mxy=max(mxy,t.Y);tp.PB(t);Q.pop();for(int i=0;i<8;i++){pii nxt=MP(t.X+dir[i][0],t.Y+dir[i][1]);if(!vis.count(nxt)&&S.count(nxt))Q.push(nxt),vis.insert(nxt);}}MEM(mp,0);MEM(vp,0);int ret=0;for(int i=0;i<tp.size();i++) mp[tp[i].X-mix][tp[i].Y-miy]=1;for(int i=0;i<=mxx-mix;i++)for(int j=0;j<=mxy-miy;j++)if(mp[i][j]==0&&vp[i][j]==0&&(ret=dfs(i,j,mix,miy,mxx,mxy))>0) ans.PB(ret);return;
}
int main(){for(cin>>t,ca=1;ca<=t;ca++){S.clear(),vis.clear(),ans.clear();cin>>r>>c>>n;for(int i=0;i<n;i++) cin>>pp[i].X>>pp[i].Y,S.insert(pp[i]);for(int i=0;i<n;i++) if(vis.count(pp[i])==0) bfs(pp[i]);ll sum=(ll)r*c;for(int i=0;i<ans.size();i++) sum-=ans[i];ans.PB(sum-n);sort(ans.begin(),ans.end());cout<<"Case #"<<ca<<":\n";cout<<ans.size()<<endl;for(int i=0;i<ans.size();i++) cout<<ans[i]<<" \n"[i==ans.size()-1];}return 0;
}



轉載于:https://www.cnblogs.com/zhangxianlong/p/10672502.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454937.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分析數據庫CitusDB:提供彈性計算能力

本文講的是分析數據庫CitusDB&#xff1a;提供彈性計算能力,企業數據庫市場很龐大&#xff0c;在這個領域既有Oracle這樣行家&#xff0c;也有IBM(DB2)和微軟(SQL Server)這樣的跨界巨頭。它們都與中小企業常用到的開源數據庫MySQL一樣&#xff0c;都屬于傳統關系型數據庫。似乎…

mysql不能創建innodb類型表_MYSQL have_innodb DISABLED無法創建innodb類型的表

今天在一臺MYSQL服務器上發現&#xff0c;明明用了engineinnodb創建的表&#xff0c;結果創建出來卻成了myisam的表。再看show variables like %innodb%;have_innodb 成了DISABLED。經過一番試驗&#xff0c;發現是我關閉數據庫后&#xff0c;直接刪除ibdata1文件造成的。刪除該…

[bzoj1059]矩陣游戲

雖然是一道水難題&#xff0c;但是我這種蒟蒻還是要講一講的。 Description 小Q是一個非常聰明的孩子&#xff0c;除了國際象棋&#xff0c;他還很喜歡玩一個電腦益智游戲——矩陣游戲。矩陣游戲在一個N*N黑白方陣進行&#xff08;如同國際象棋一般&#xff0c;只是顏色是隨意的…

H264 RTP頭分析

h264 RTP頭解析流程 結合NALDecoder.c分析 協議分析 &#xff1a;每一個RTP數據報都由頭部&#xff08;Header&#xff09;和負載&#xff08;Payload&#xff09;兩個部分組成&#xff0c;其中頭部前 12 個字節的含義是固定的&#xff0c;而負載則可以是音頻或者視頻數據。 一…

golang mysql 插入_Mysql學習(一)添加一個新的用戶并用golang操作Mysql

Mysql添加一個新的用戶并賦予權限添加一個自己的用戶到mysql首先我們需要先用root用戶登錄mysql&#xff0c;但是剛安裝完沒有密碼&#xff0c;我們先跳過密碼ailumiyanaailumiyana:~/Git_Project/Go_Test$ sudo mysqld_safe --skip-grant-tables2019-01-07T01:35:51.559420Z m…

云計算構建基石之Hyper-V:虛擬機管理

本文講的是云計算構建基石之Hyper-V:虛擬機管理,作為云計算的重要基石&#xff0c;虛擬化技術的好壞起著關鍵作用。Hyper-V作為微軟重要的虛擬化解決技術&#xff0c;在微軟云計算構建解決方案中&#xff0c;更是關鍵至關鍵&#xff0c;基礎之基礎。在本系列文章中&#xff0c;…

Delphi語言最好的JSON代碼庫 mORMot學習筆記1

mORMot沒有控件安裝&#xff0c;直接添加到lib路徑,工程中直接添加syncommons&#xff0c;syndb等到uses里 --------------------------------------------------------- 在進行網絡編程中需要JSON對象的構建與解析&#xff0c;這個Delphi XE自帶&#xff1a;{$IF CompilerVers…

3GP文件格式分析

1. 概述現在很多智能手機都支持多媒體功能&#xff0c;特別是音頻和視頻播放功能&#xff0c;而3GP文件格式是手機端普遍支持的視頻文件格式。目前很多手機都支持h263視頻編碼格式的視頻文件播放&#xff0c;還有些手機支持h264。音頻文件格式普遍支持amr&#xff0c;有些手…

mysql group concat_MySQL 的 GROUP_CONCAT 函數詳解

GROUP_CONCAT(expr) 函數會從 expr 中連接所有非 NULL 的字符串。如果沒有非 NULL 的字符串&#xff0c;那么它就會返回 NULL。語法如下&#xff1a;GROUP_CONCAT 語法規則它在遞歸查詢中用的比較多&#xff0c;但要使用好它并不容易。所以讓我們一起來看看吧&#xff1a;假設有…

ORACLE數據庫 常用命令和Sql常用語句

ORACLE 賬號相關 如何獲取表及權限 1.COPY表空間backup scottexp登錄管理員賬號system2.創建用戶 create user han identified(認證) by mima default tablespace users&#xff08;默認的表空間&#xff09; quota&#xff08;配額&#xff09;10M on users;創建賬號分配權限g…

光榮之路測試開發面試linux考題之四:性能命令

Hi,大家好我是tom,I am back.今天要給大家講講linux系統一些性能相關命令。 1.fdisk 磁盤管理 是一個強大的危險命令&#xff0c;所有涉及磁盤的操作都由該命令完成&#xff0c;包括&#xff1a;新增磁盤、增刪改磁盤分區等。 1.fdisk -l 查看磁盤分區情況 Disk /dev/sda: 27.8…

一起學并發編程 - 優雅關閉

Java中原來在Thread中提供了stop()方法來終止線程&#xff0c;但這個方法是不安全的&#xff0c;所以一般不建議使用。文本將介紹兩種可以優雅的終止線程的方式...<!-- more --> 第一種 在JAVA《Java多線程模式》中有一種叫Two-Phase Termination&#xff08;兩步終止&am…

mac安裝完mysql后關機特別慢_mysql-Mac終端下遇到的問題總結

為了方便啟動mysql服務&#xff0c;修改/etc/.bash_profile文件&#xff0c;如下alias mysql"/usr/local/mysql/bin/mysql"alias mysqladmin"/usr/local/mysql/bin/mysqladmin"或者alias mysqlstart"sudo /usr/local/mysql/support-files/mysql.serve…

sending data mysql slow Mysql查詢非常慢的可能原因

1.用explain看看mysql的執行情況,可以得知,task_id掃描了近20萬條數據,而且這個task_id不是索引 2.為這個task_id所在的表,將此字段添加索引后,查詢就變得很快了 轉載于:https://www.cnblogs.com/Skrillex/p/7365590.html

mybatis 添加語句返回對象_mybatis的insert語句插入數據時的返回值的實現

mybatis的insert語句插入數據時的返回值的實現,語句,返回值,那條,都是,站長站mybatis的insert語句插入數據時的返回值的實現易采站長站&#xff0c;站長之家為您整理了mybatis的insert語句插入數據時的返回值的實現的相關內容。mybatis的sql語句一般是配置在配置文件中&#xf…

打包上架

昨天寫的打包上架&#xff0c;分組到了文章&#xff0c;發現不便查看貼鏈接到這里&#xff1a; http://www.cnblogs.com/ITCoderW/articles/7597969.html 最近一個版本的審核的過程 當我們上傳到APP Store一個新的版本后 登錄ITunes Connect就可以看到相應的版本的審核的狀態 粗…

inet_pton函數和inet_ntop函數的用法及簡單實現

http://blog.csdn.net/eagle51/article/details/53157643?utm_sourceitdadao&utm_mediumreferral 這兩個函數是隨IPv6出現的新函數&#xff0c;對于IPv4地址和IPv6地址都適用。函數名中的p和n非別代表表達&#xff08;presentation&#xff09;和數值&#xff08;numeric&…

mysql 5.7 延遲同步_MySQL5.6升級5.7時出現主從延遲問題排查過程

最近在做zabbix的數據庫MySQL5.6升級5.7時&#xff0c;出現主從延遲問題&#xff0c;這個問題困擾了很久沒有解決&#xff0c;昨天終于解決了&#xff0c;整理了一下整個排查過程&#xff0c;分享給大家。環境說明&#xff1a;mysql主庫為5.6的版本&#xff0c;有四個從庫&…

架構設計--僅是軟件開發之第二大影響力?!

SDWest2006&#xff08;譯注1&#xff09;對我來說是個有趣的大會。我除了星期三之外&#xff08;當時我正飛往費城參加一個客戶會議 因此錯過了Jolt頒獎部分&#xff09;每天都在演講。我也參加了一些談話和會議&#xff1b;其中最引人關注的是Mike Cohn的計劃與估算的談話。…

WiFi密碼分享有妙招 不必口頭相傳

移動互聯網的迅速崛起&#xff0c;使得我們可以方便的使用手持移動設備進行上網。尤其是在家庭中&#xff0c;使用智能手機、平板電腦、筆記本電腦等移動設備進行上網和娛樂已經成為主流&#xff0c;臺式機上網正日漸式微。在家中時&#xff0c;我們通過無線路由器提供的WiFi網…