64 暗恋
作者: Turbo时间限制: 1S章节: 基本练习(数组)
问题描述 :
同在一个高中,他却不敢去找她,虽然在别人看来,那是再简单不过的事。暗恋,是他唯一能做的事。他只能在每天课间操的时候,望望她的位置,看看她倾心的动作,就够了。操场上的彩砖啊,你们的位置,就是他们能够站立的地方,他俩的关系就像砖与砖之间一样固定,无法动摇。还记得当初铺砖的工人,将整个操场按正方形铺砖(整个操场可视为R行C列的矩阵,矩阵的每个元素为一块正方形砖块),正方形砖块有两种,一种为蓝色,另一种为红色。我们定义他和她之间的“爱情指标”为最大纯色正方形的面积,请你写一个程序求出“爱情指标”。
输入说明 :
第一行两个正整数R和C,R和C都不超过200。
接下来R行C列描述整个操场,红色砖块用1来表示,蓝色砖块用0来表示。
输出说明 :
一个数,表示他和她之间的“爱情指标”。
输入范例 :
5 8
0 0 0 1 1 1 0 1
1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1
1 0 1 1 1 1 1 0
1 1 1 0 1 1 0 1
输出范例 :
9
#include <iostream>
#include <algorithm>
using namespace std;
int love[201][201] = { 0 };
bool isLove(int x, int y,int len)
{
int color = love[x][y];
x++; y++;
if (love[x][y] != color) return false;
for (int i = 1; i <= len; i++)
{
if (love[x - i][y] != color) return false;
if (love[x][y - i] != color) return false;
}
return true;
}
int main()
{
int r, c;
cin >> r >> c;
for (int i = 1; i <= r; i++)
{
for (int j = 1; j <= c; j++)
{
cin >> love[i][j];
}
}
int max = 1;
bool flag = 0;
for (int i = 1; i <= r; i++)
{
for (int j = 1; j <= c; j++)
{
if (r - i < max)//剩余高度小于最大边长跳出
{
flag = 1; break;
}
if (c - j < max)//剩余宽度小于最大边长 换行
{
continue;
}
//判断最大边长
int len = 1, x = i, y = j;
while (x < r&&y < c)
{
if (isLove(x, y,len))
{
x++, y++, len++;
if (len>max) max = len;
}
else
{
break;
}
}
}
if (flag)
break;
}
cout << max*max<< endl;
return 0;
}
标签:love,int,max,暗恋,正方形,64,砖块
来源: https://www.cnblogs.com/VictorierJwr/p/12878282.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。