最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

試題描述:

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

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

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

輸入:

第一行,2個(gè)數(shù)字,M、N,使用英文逗號(hào)隔開。
接下來(lái)M行,每行N個(gè)數(shù)字,使用英文逗號(hào)隔開。

輸出:

一行,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

其他:

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

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

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

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

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

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

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

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

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

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

也要注意使用scanf和printf。

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

論速度那個(gè)快       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)球迷 今日頭條面試題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C++中運(yùn)算符重載的規(guī)則語(yǔ)法實(shí)例

    C++中運(yùn)算符重載的規(guī)則語(yǔ)法實(shí)例

    今天小編就為大家分享一篇關(guān)于C++中運(yùn)算符重載的規(guī)則語(yǔ)法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C++11?關(guān)鍵字?const?使用小結(jié)

    C++11?關(guān)鍵字?const?使用小結(jié)

    const大致意思是“我承諾不改變這個(gè)值”。主要用于說(shuō)明接口,這樣在把變量傳入函數(shù)時(shí)就不必?fù)?dān)心變量會(huì)在函數(shù)內(nèi)被改變,本文給大家介紹C++11?關(guān)鍵字?const?使用小結(jié),感興趣的朋友一起看看吧
    2021-12-12
  • vscode 配置 C/C++ 編譯環(huán)境的詳細(xì)圖文教程

    vscode 配置 C/C++ 編譯環(huán)境的詳細(xì)圖文教程

    這篇文章主要介紹了vscode 配置 C/C++ 編譯環(huán)境的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì)

    C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實(shí)現(xiàn)將內(nèi)容寫入文件的方法總結(jié)

    C++實(shí)現(xiàn)將內(nèi)容寫入文件的方法總結(jié)

    本文主要總結(jié)了一下C/C++將內(nèi)容寫入文件的方法,C的方法有些單調(diào),畢竟沒(méi)有庫(kù)函數(shù)。C++則豐富些,下面我把搜集到的整理一下,供大家參考
    2023-04-04
  • C語(yǔ)言字符串壓縮之ZSTD算法詳解

    C語(yǔ)言字符串壓縮之ZSTD算法詳解

    快速壓縮工具zstd(zstandard)是由facebook開源的快速無(wú)損壓縮算法,主要應(yīng)用于zlib級(jí)別的實(shí)時(shí)壓縮場(chǎng)景,并且具有更好的壓縮比。本文將來(lái)講講ZSTD算法的使用,需要的可以參考一下
    2022-08-08
  • c++ 預(yù)處理之正整型實(shí)現(xiàn)方法

    c++ 預(yù)處理之正整型實(shí)現(xiàn)方法

    這篇文章主要介紹了c++ 預(yù)處理之正整型實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-07-07
  • C++詳細(xì)分析線程間的同步通信

    C++詳細(xì)分析線程間的同步通信

    線程間不通信的話,每個(gè)線程受CPU的調(diào)度,沒(méi)有任何執(zhí)行上的順序可言,線程1和線程2是根據(jù)CPU調(diào)度算法來(lái)的,兩個(gè)線程都有可能先運(yùn)行,是不確定的,線程間的運(yùn)行順序是不確定的,所以多線程程序出問(wèn)題,難以復(fù)現(xiàn),本章我們就來(lái)了解線程間的同步通信
    2022-05-05
  • C語(yǔ)言深入細(xì)致講解動(dòng)態(tài)內(nèi)存管理

    C語(yǔ)言深入細(xì)致講解動(dòng)態(tài)內(nèi)存管理

    動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語(yǔ)言中動(dòng)態(tài)內(nèi)存的管理
    2022-05-05
  • Qt實(shí)現(xiàn)Flappy Bird游戲

    Qt實(shí)現(xiàn)Flappy Bird游戲

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)Flappy Bird游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評(píng)論

施秉县| 敦化市| 浪卡子县| 阿勒泰市| 青岛市| 平塘县| 芦山县| 铜川市| 寻甸| 小金县| 黄大仙区| 东宁县| 海门市| 阳谷县| 灵宝市| 宜章县| 仙桃市| 周口市| 茂名市| 湘阴县| 抚顺市| 辛集市| 太保市| 汉源县| 建宁县| 葫芦岛市| 土默特右旗| 鄂州市| 永丰县| 北宁市| 濮阳市| 吉林省| 遂川县| 徐闻县| 大厂| 姜堰市| 禄劝| 抚远县| 漯河市| 绥宁县| 南充市|