其实本题是加强版,原数据是100*100的,老师为了尊重我们的智商加成了3000*3000并进行了字符串处理……

上原题~


球迷

【问题描述】

一个球场C的球迷看台可容纳M*N个球迷。官方想统计一共有多少球迷群体,最大的球迷群体有多少人。

球迷选座特性:同球迷群体会选择相邻座位,不同球迷群体选择不相邻的座位。(相邻包括前后相邻、左右相邻、斜对角相邻);

给定一个M*N的二位球场,0代表该位置没人,1代表该位置有人,希望输出球队群体个数P,最大的球队群体人数Q。

【输入】

第一行,2个数字,M、N,使用英文逗号隔开。

接下来M行,每行N个数字,使用英文逗号隔开。

【输出】

一行,2数字,P和Q。

【输入输出样例】

fans.in

fans.out

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%的数据,1<=M,N<=3×103


思路:特殊特判读入,找到有人就进行八连块搜索。

上代码~

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int m=,n=,t=,num,maxnum=;
bool fans[][];
char x[];
void reads()//字符串特判读入
{
scanf("%s",&x);
int l=strlen(x);
int i=;
while(x[i]!=',')
{m=m*+x[i]-;i++;}//字符转数字
i++;
while(i<l)
{n=n*+x[i]-;i++;}
return;
}
void readings()
{
int l=n*-;//加上逗号的长度
for(int i=;i<=m;i++)
{
scanf("%s",x);
for(int j=;j<l;j=j+)
fans[i][j/+]=x[j]-;//由于是单个字符就不用累加了
}
return;
}
void dfs(int a,int b)//搜索
{
if(a<||a>m||b<||b>n) return;//越界判断
if(!fans[a][b]) return;//是否坐了人
fans[a][b]=;//该人已经计数并撤去标记以免重复标记
num++;
dfs(a-,b-);//向八连块方向搜索坐在一起的球迷
dfs(a-,b);
dfs(a-,b+);
dfs(a,b-);
dfs(a,b);
dfs(a,b+);
dfs(a+,b-);
dfs(a+,b);
dfs(a+,b+);
return;//记得搜索完后退出去
}
int main()
{
reads();//特殊读入m和n
readings();//读入球迷就座情况
for(int i=;i<=m;i++)
{
for(int j=;j<=n;j++)
{
if(fans[i][j])
{
t++;//发现一个单独的团体组织
num=;//单个团体计数
dfs(i,j);
if(num>maxnum) maxnum=num;//更新最大值
}
}
}
printf("%d,%d",t,maxnum);//按要求输出
return ;
}

18年今日头条笔试第一题题解:球迷(fans)的更多相关文章

  1. IMO 2021 第一题题解及相关拓展问题分析

    IMO 2021 第 1 题: 设整数 n ≥ 100.伊凡把 n, n + 1, ..., 2n 的每个数写在不同的卡片上.然后他将这 n + 1 张卡片打乱顺序并分成两堆.证明:至少有一堆中包含两 ...

  2. 电子数字 网易游戏在线笔试 第一题 hihocoder

    题目链接 http://hihocoder.com/contest/ntest2016spring1/problem/1 这个题目有几个算法考点: (1)对于一个LED数码管(由7个发光二极管封装在一 ...

  3. 51nod 1563 坐标轴上的最大团(今日gg模拟第一题) | 线段覆盖 贪心 思维题

    51nod 1563 坐标轴上的最大团 坐标轴上有n个点,每个点有一个权值.第i个点的坐标是 xi ,权值是 wi .现在对这些点建图.对于点对 (i,j) ,如果 |xi−xj|≥wi+wj ,那么 ...

  4. hGame2020第二周第一题题解

    Description: Cosmos通过两个小时速成了PHP+HTML,他信心满满的写了一个博客,他说要从博客后台开始......(flag在根目录, 禁止使用任何扫描器) Challenge Ad ...

  5. 金山网络2014春季Android实习生招聘-成都站-笔试第一题

    实现单例模式,并实现方法int getResult(float a),将a*8后返回. package jinshanwangluo.exam; /** * @author guoxm * @date ...

  6. Legendary Items-微软实习生笔试第一题

    题目如下: 这道题难点不仅在于正确理解题意,判断递归条件,更在于用数学方法推出解决公式.因为N最大为1百万,而内存只有256MB, 所以暴力递归肯定会超时,超空间. 不过,我才疏学浅,又没有大量时间去 ...

  7. 剑指Offer——完美+今日头条笔试题+知识点总结

    剑指Offer--完美+今日头条笔试题+知识点总结 情景回顾 时间:2016.9.28 16:00-18:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:完美世界笔试 ...

  8. 2018春招-今日头条笔试题-第一题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...

  9. 今日头条&58转转笔试

    昨天参加今日头条和58转转的笔试,因为时间上有冲突,所以主要选择参加头条的笔试. 先说头条: 头条的题型: 一道改错题 三道编程题 一道设计题 感受: 做题目的的时候还是有点紧张的,因为突然遇到题目需 ...

随机推荐

  1. C#设计模式之11:命令模式

    C#设计模式之11:命令模式 命令模式 命令模式用来解决一些复杂业务逻辑的时候会很有用,比如,你的一个方法中到处充斥着if else 这种结构的时候,用命令模式来解决这种问题就会让事情变得简单很多. ...

  2. SessionChange

    protected override void OnSessionChange(SessionChangeDescription changeDescription) { System.IO.File ...

  3. ASP.NET MVC 页面静态化操作的思路

    本文主要讲述了在asp.net mvc中,页面静态化的几种思路和方法.对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能.在asp.net mvc中,视图的 ...

  4. linq根据英文首字母姓名排序

    names.Sort((a, b) => a.name.CompareTo(b.name));

  5. 自学Python编程的第五天(希望有IT大牛帮我看最下面的代码)----------来自苦逼的转行人

    2019-09-15-15:40:24 今天没有学知识,是一个一周总结,把这一周学的知识总结一遍,然后把做过的练习题再做一遍 看是否还会有再出现同样的错误,而且还可以知道有哪些知识点没有掌握好,可以把 ...

  6. 拓展 - WebRTC 多视频网络拓扑之三种架构

    众所周知,WebRTC非常适合点对点(即一对一)的音视频会话.然而,当我们的客户要求超越一对一,即一对多.多对一设置多对多的解决方案或者服务,那么问题就来了:“我们应该采用什么样的架构?” .简单的呢 ...

  7. vue 属性props定义方法

    当子组件接收父组件传过来的值的时候,我们一般有两种方式来接收 不过大家好像都用第二种方式,我只有在不确定数据类型的时候才用第一种方式 第一种: export default { // 不检测类型,全盘 ...

  8. shell EOF 用户自定义终止符

    #!/bin/bash ftp -n << EOF user guest 123456 binary cd /home/ prompt mget * close bye EOF 使用Tab ...

  9. linux安全加固项目

    分享一个Linux加固脚本项目,可快速对服务器进行安全加固,顺便做下备忘,安全人员必须熟悉运维相关的知识! 支持的操作系统平台: Amazon 2013.03 Amazon 2013.09 Amazo ...

  10. echarts 如何设置热力图点的大小

    series: [{ name: 'AQI', type: 'heatmap', coordinateSystem: 'geo', blurSize: 10, pointSize: 10, // 设置 ...