9、涂棋盘--2017网易春招

[编程题] 涂棋盘

时间限制:1秒

空间限制:32768K

小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画,帮助小易算算他会涂画多少个棋格。

输入描述:

输入数据包括n+1行:

第一行为一个整数n(1 ≤ n ≤ 50),即棋盘的大小

接下来的n行每行一个字符串表示第i行棋盘的颜色,‘W‘表示白色,‘B‘表示黑色

输出描述:

输出小易会涂画的区域大小

输入例子:

3 BWW BBB BWB

输出例子:

3

解题思路:本题求每一列连续相同字符的子串最长值,然后再求出所有列中最长的,即为结果

本题主要遇到以下几个问题

1)求得没考虑连续,只是求了W个数B个数,求最大值了

2)求连续的,给每一列记录的m[j]赋值时用的count,其实应该是m[j]和count的最大的

3)每次处理后count置为初始1

4)memset初始化,最后一个参数为sizof(类型)*数组个数

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <memory.h>
 4 using namespace std;
 5
 6 int main()
 7 {
 8     int n;
 9     while(cin>>n)
10     {
11         char a[n][n];
12         for(int i=0;i<n;i++)
13         {
14             for(int j=0;j<n;j++)
15             {
16                 cin>>a[i][j];
17             }
18         }
19
20         int m[n];
21         memset(m,0,sizeof(int)*n);
22         int count = 1;
23         for(int j=0;j<n;j++)
24         {
25             for(int i=0;i<n-1;i++)
26             {
27                 if(a[i+1][j] == a[i][j])
28                 {
29                     count++;
30                     if(i==n-2)
31                     {
32                         m[j] = max(m[j],count);
33                     }
34                 }
35                 else
36                 {
37                     m[j] = max(m[j],count);
38                     count = 1;
39                 }
40             }
41             count = 1;
42         }
43         count = m[0];
44         for(int i=1;i<n;i++)
45         {
46             if(m[i]>count)
47                 count = m[i];
48         }
49         cout<<count<<endl;
50     }
51 }
时间: 2024-10-31 13:21:42

9、涂棋盘--2017网易春招的相关文章

6、工作安排--2017网易春招

[编程题] 工作安排 时间限制:1秒 空间限制:32768K 现在有n位工程师和6项工作(编号为0至5),现在给出每个人能够胜任的工作序号表(用一个字符串表示,比如:045,表示某位工程师能够胜任0号,4号,5号工作).现在需要进行工作安排,每位工程师只能被安排到自己能够胜任的工作当中去,两位工程师不能安排到同一项工作当中去.如果两种工作安排中有一个人被安排在的工作序号不一样就被视为不同的工作安排,现在需要计算出有多少种不同工作安排计划. 输入描述: 输入数据有n+1行: 第一行为工程师人数n(

11、堆砖块--2017网易春招

[编程题] 堆砖块 时间限制:1秒 空间限制:32768K 小易有n块砖块,每一块砖块有一个高度.小易希望利用这些砖块堆砌两座相同高度的塔.为了让问题简单,砖块堆砌就是简单的高度相加,某一块砖只能使用在一座塔中一次.小易现在让能够堆砌出来的两座塔的高度尽量高,小易能否完成呢. 输入描述: 输入包括两行: 第一行为整数n(1 ≤ n ≤ 50),即一共有n块砖块 第二行为n个整数,表示每一块砖块的高度height[i] (1 ≤ height[i] ≤ 500000) 输出描述: 如果小易能堆砌出

12、分饼干--2017网易春招

[编程题] 分饼干 时间限制:1秒 空间限制:32768K 易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了.易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友.现在你需要计算出k有多少种可能的数值 输入描述: 输入包括两行: 第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位) 第二行为小朋友的人数n 输出描述: 输出k可能的数值种数,保证至少为1 输入例子: 999999999999

2017百度春招&lt;不等式排列&gt;

题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊手中只有k个小于符号即('<'')和n-k-1个大于符号(即'>'),度度熊想知道对于1至n任意的排列中有多少个排列可以使用这些符号使其为合法的不等式数列. 解析: 动态规划问题 dp[i][j] = (dp[i - 1][j - 1] * (i - j) + dp[i - 1][j] * (j

2017网易秋招编程集合

CPP http://blog.csdn.net/achiberx/article/details/74058208 [编程题]回文序列 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列.现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数

网易春招编程_赶去公司

终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug.假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上.小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点,然后从打车点的位置坐出租车去公司.每次移动到相邻的街道(横向或者纵向)走路将会花费walkTime时间,打车将花费taxiTime时间.小易需要尽快赶到公司去,现在小易想

2017网易秋招--7、买苹果

题目描述:(DP问题) 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分). 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带.如果不能购买恰好n个苹果,小易将不会购买. 输入描述: 输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果 输出描述: 输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1 输入例子: 20 输出例子: 3 思路:DP问题.首先dp[i] = min(dp[i],dp[i-a[j

2017网易秋招--8、计算糖果

A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数. 现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C.这里保证最多只有一组整数A,B,C满足所有题设条件. 输入描述: 输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开. 范围均在-30到30之间(闭区间). 输出描述: 输

2017百度春招&lt;有趣的排序&gt;

题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #include<bits/stdc++.h> using namespace std; int main() { int n, i, j; vector<int> a; vector<int> b; cin >> n; for(i=0; i<n; i++){ int