欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 實(shí)現(xiàn)球迷 今日頭條面試題

 更新時(shí)間:2018年08月17日 11:00:51   作者:FXY_ssf  
這篇文章主要介紹了C++實(shí)現(xiàn)球迷今日頭條面試題功能,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

試題描述:

一個球場C的球迷看臺可容納M*N個球迷。官方想統(tǒng)計(jì)一共有多少球迷群體,最大的球迷群體有多少人。

球迷選座特性:同球迷群體會選擇相鄰座位,不同球迷群體選擇不相鄰的座位。(相鄰包括前后相鄰、左右相鄰、斜對角相鄰);

給定一個M*N的二維球場,0代表該位置沒人,1代表該位置有人,希望輸出球隊(duì)群體個數(shù)P,最大的球隊(duì)群體人數(shù)Q。

輸入:

第一行,2個數(shù)字,M、N,使用英文逗號隔開。
接下來M行,每行N個數(shù)字,使用英文逗號隔開。

輸出:

一行,2數(shù)字,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

其他:

對于100%的數(shù)據(jù),1<=M,N<=3e3。

這道題是一道明顯的深度優(yōu)先搜索,而且十分簡單。

但是在看到輸入示例后會發(fā)現(xiàn)每個數(shù)據(jù)的后面都存在著一個字符,而且回車也屬于字符。

所以我們要先對數(shù)據(jù)進(jìn)行處理。

我們需要使用的的輔助工具就是getchar()了,不知道的人可以把getchar()作為一個爪子,每當(dāng)一個char類型的字符被輸入后,getchar()就可以準(zhǔn)確的捕捉到他。

但是getchar()是會忽略每行第一個字符的。

所以我們可以定義一個數(shù)組,在取完第一個數(shù)后再使用getchar()。就可以把所有的0和1存儲在一個n*m的二維數(shù)組中了。

再說dfs,就十分簡單了,只需要判斷可能走的8個方向,再使用一個計(jì)數(shù)器計(jì)數(shù)就可以了。

但是為了避免走重復(fù)的路,也是為了避免時(shí)間超限。所以我們可以定義一個bool類型的數(shù)組,記錄走過的路。

同時(shí)在主函數(shù)中做寫一個兩層的嵌套循環(huán),找到每個1,再進(jìn)行dfs。

也要注意使用scanf和printf。

在最后也需要使用一個putchar(),相當(dāng)于是輸出一個字符。

論速度那個快       putchar(),getchar>scanf,printf>cin,cout。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<stdio.h>
using namespace std;
int n,m,l,k,sum,ans,cnt;
char a[4000][4000],op;
bool b[4000][4000]={0};
int dfs(int x,int y)
{
 if(a[x-1][y]=='1'&&b[x-1][y]==0)
 {
  b[x-1][y]=1;
  dfs(x-1,y);
  ans++;
 }
 if(a[x][y+1]=='1'&&b[x][y+1]==0)
 {
  b[x][y+1]=1;
  dfs(x,y+1);
  ans++;
 }
 if(a[x-1][y+1]=='1'&&b[x-1][y+1]==0)
 {
  b[x-1][y+1]=1;
  dfs(x-1,y+1);
  ans++;
 }
 if(a[x+1][y]=='1'&&b[x+1][y]==0)
 {
  b[x+1][y]=1;
  dfs(x+1,y);
  ans++;
 }
 if(a[x][y-1]=='1'&&b[x][y-1]==0)
 {
  b[x][y-1]=1;
  dfs(x,y-1);
  ans++;
 }
 if(a[x+1][y-1]=='1'&&b[x+1][y-1]==0)
 {
  b[x+1][y-1]=1;
  dfs(x+1,y-1);
  ans++;
 }
 if(a[x+1][y+1]=='1'&&b[x+1][y+1]==0)
 {
  b[x+1][y+1]=1;
  dfs(x+1,y+1);
  ans++;
 }
 if(a[x-1][y-1]=='1'&&b[x-1][y-1]==0)
 {
  b[x-1][y-1]=1;
  dfs(x-1,y-1);
  ans++;
 }
 return ans;
}
int main()
{
 scanf("%d%c%d",&n,&op,&m);
 for(int i=1;i<=n;i++)
 {
  for(int j=1;j<=m;j++)
  { 
   getchar();
   a[i][j]=getchar();
  }
 }
 for(int i=1;i<=n;i++)
 {
  for(int j=1;j<=m;j++)
  {
   ans=0;
   if(a[i][j]=='0')b[i][j]=1;
    if(a[i][j]=='1'&&b[i][j]==0)
    {
    sum++;
    cnt=max(cnt,dfs(i,j));
    }
  }
 }
 char p=',';
 printf("%d",sum);
 putchar(p);
 printf("%d",cnt);
 }

總結(jié)

以上所述是小編給大家介紹的C++ 實(shí)現(xiàn)球迷 今日頭條面試題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C++可擴(kuò)展性與多線程超詳細(xì)精講

    C++可擴(kuò)展性與多線程超詳細(xì)精講

    這篇文章主要介紹了C++可擴(kuò)展性與多線程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Opencv實(shí)現(xiàn)圖像灰度線性變換

    Opencv實(shí)現(xiàn)圖像灰度線性變換

    這篇文章主要為大家詳細(xì)介紹了Opencv實(shí)現(xiàn)圖像灰度線性變換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C++實(shí)現(xiàn)一維向量旋轉(zhuǎn)算法

    C++實(shí)現(xiàn)一維向量旋轉(zhuǎn)算法

    這篇文章主要介紹了C++實(shí)現(xiàn)一維向量旋轉(zhuǎn)算法,非常實(shí)用的經(jīng)典算法,需要的朋友可以參考下
    2014-08-08
  • C語言簡易通訊錄的實(shí)現(xiàn)代碼

    C語言簡易通訊錄的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語言簡易通訊錄的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++程序中啟動線程的方法

    C++程序中啟動線程的方法

    這篇文章主要介紹了C++程序中啟動線程的方法,作者針對C++11版本中的一些新特性進(jìn)行了解說,需要的朋友可以參考下
    2015-07-07
  • C語言自增(++)和自減(--)實(shí)例詳解

    C語言自增(++)和自減(--)實(shí)例詳解

    本篇文章主要介紹了C語言的自增和自減的基本知識,并附有代碼示例,以便大家理解,有需要的朋友可以看下
    2016-07-07
  • 解決codeblocks斷點(diǎn)不停無效的問題

    解決codeblocks斷點(diǎn)不停無效的問題

    今天小編就為大家分享一篇解決codeblocks斷點(diǎn)不停無效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • c++讀取excel的代碼詳解

    c++讀取excel的代碼詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于c++讀取excel的代碼詳解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • 深入理解c語言數(shù)組

    深入理解c語言數(shù)組

    這篇文章主要介紹了c語言數(shù)組,有需要的朋友可以參考一下
    2013-12-12
  • C語言之飛機(jī)大戰(zhàn)游戲

    C語言之飛機(jī)大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了C語言之飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論