試題描述
2023年,世界盃在家鄉開幕了!現在世界盃場館可容納m*n個球迷。官方想統計一共有多少球迷群體,最大的球迷群體有多少人。
球迷選座特性:同球迷群體會選擇相鄰座位,不同球迷群體選擇不相鄰的座位。(相鄰包括前後相鄰、左右相鄰、斜對角相鄰);
給定乙個m*n的二維球場,0代表該位置沒人,1代表該位置有人,希望輸出球隊群體個數p,最大的球隊群體人數q。
輸入第一行,2個數字,m、n,使用英文逗號隔開。
接下來m行,每行n個數字,使用英文逗號隔開。
輸出一行,2數字,p和q。
輸入示例
10,10
0,0,0,0,0,0,0,0,0,0
0,0,0,1,1,0,1,0,0,0
0,1,0,0,0,0,0,1,0,1
1,0,0,0,0,0,0,0,1,1
0,0,0,1,1,1,0,0,0,1
0,0,0,0,0,0,1,0,1,1
0,1,1,0,0,0,0,0,0,0
0,0,0,1,0,1,0,0,0,0
0,0,1,0,0,1,0,0,0,0
0,1,0,0,0,0,0,0,0,0
輸出示例
6,8其他說明
咳。從上面的資料範圍可以得知這題的主要錯誤,就是tle.查詢方陣類題目,我選擇dfs(seele為dfs帶鹽)
因為這題只需要尋找聯通的球迷群體,所以不用回溯啦~
#include#include#include#include#includeusing namespace std;
int a,b,sum=0,maxn=-1,emmm=1,pdd=0;//把maxn定義的很小,以便替換
char emm,matrix[3001][3001];//資料範圍很大,記得全域性變數
int dfs(int x,int y)
if(matrix[x][y-1]=='1'&&y-1>=0)
if(matrix[x+1][y-1]=='1'&&(x+1=0))
if(matrix[x-1][y+1]=='1'&&(x-1>=0&&y+1>=0))
if(matrix[x+1][y+1]=='1'&&x+1=0&&y-1>=0))
}int main() {
scanf("%d,%d\n",&a,&b);//scanf輸入比cin更快,技能get
for(int i=0; i另外,感謝@ljqmiao_的友情支援
人生三部曲
人生三部曲 童年沙丁魚罐頭似的公共汽車在曬的發燙的柏油路上緩慢地爬著。我 瘦瘦小小的個子在擁擠的人群中喘不過氣來。還要多久呀?人們煩躁而沉悶的氣氛充斥著整個車廂。忽然,我看見一位打扮入時的西裝人士,正悄悄地把手伸入一位老人的口袋。我第一反應就是有小偷!於是大聲脫口而出,一車人都回頭驚悸地看著我,西裝...
Jmock使用三部曲
import org.jmock.mockery import org.jmock.expectations class publishertest extends testcase execute publisher.publish message verify assert.assert.注意 ...
SoftwareRender三部曲 前言
這個系列主要是介紹如何簡單製作乙個softwarerender,後面會分三篇文章來完成這個系列。在看這個系列之前最好先閱讀之前 遊戲開發3d數學筆記 在這個工程中的所需要的一些數學庫 vector matrix mesh等 都 於之前3d數學系列。當然,這些數學庫使用上比較簡單,如果你對其數學原理不...