【UVALive】3029.City Game<C++>
2015-11-23 21:57
471 查看
[code]#include<cstdio> #include<cstring> #include<iostream> using namespace std; char input[1001][1001],judge; int up[1001][1001],Left[1001][1001],Right[1001][1001]; int main(){ int m,n,lnear,rnear,answer,times; scanf("%d",×); for(int k=1;k<=times;k++){ answer=0; scanf("%d%d",&m,&n); memset(up,0,sizeof(up)); memset(Left,0,sizeof(Left)); memset(Right,0x7f,sizeof(Right)); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++){ scanf("%c",&judge); if(judge==' '||judge=='\n') if(j==1){ j=n; i--; } else j--; else input[i][j]=judge; } for(int i=1;i<=m;i++){ lnear=0; for(int j=1;j<=n;j++) if(input[i][j]!='R'){ up[i][j]=up[i-1][j]+1; Left[i][j]=max(Left[i-1][j],lnear+1); } else lnear=j; rnear=n+1; for(int j=n;j>=1;j--){ if(input[i][j]!='R') Right[i][j]=min(Right[i-1][j],rnear-1); else rnear=j; answer=max(answer,up[i][j]*(Right[i][j]-Left[i][j]+1)); } } printf("%d\n",answer*3); } return 0; }
相关文章推荐
- 三色排序问题/(荷兰国旗问题)(C++版)
- C++ 表达式
- 【应用笔记】【AN003】VC++环境下基于以太网的4-20mA电流采集
- 二叉树的基本操作的c++实现
- C++ for_each学习笔记
- C/C++中void用法总结
- 数据抽象与封装的好处--【primer第四版】
- C/C++学习(二)输入n个整数,输出其中最小的k个。
- 合并两个有序数组(C++版)
- c++之判断栈的弹出是否合法
- c++之栈的顺序表实现
- C语言初学者画图练习
- C语言初学者简单语法综合练习
- C语言初学者简单语法小测
- c++栈之带括号的四则运算
- c++友元类及友元函数
- Python中的for与其他类C语言的比较(如c++,c#)
- 1、让自己习惯c++
- Python之自动化生成解析XML的C++类(基于tinyxml库解析)
- C++ Primer书中第二章经常用到的Sales_data类