中山培训 2016.7.11

Description

你家刚买了一套新房,想邀请朋友回来庆祝,所以需要一个很大的举行餐桌,餐桌能容纳的人数等于餐桌的周长,你想买一个能容纳最多人的餐桌,餐桌的边必须跟房间的边平行。
给你的房间的设计,计算最多能邀请的客人数。

Input

第一行包含两个整数R和C(1<=R,C<=2000),表示房子的长和宽。
接下来R行每行S个字符(中间没有空格),“.”表示空白区域,“X”表示有障碍物,餐桌所占区域必须是空白的。

Output

输出最多能要求的客人数量。

Sample Input

输入1:

2 2

..

..



输入2:

4 4

X.XX

X..X

..X.

..XX



输入3:

3 3

X.X

.X.

X.X

Sample Output

输出1:

7



输出2:

9



输出3:

3

 

 

直接暴力,一开始我枚举所有矩形,只得了20分,结果朱原销神奇的用一个方法就AC了,我们算了算复杂度高达O(N^3),n<=2000,居然过了。方法很简单,预处理一下,就开心得暴力了。

 

var

 a:array[1..2000,1..2000] of longint;

 f:array[1..2000] of longint;

 ans,n,m,t:longint;

 ch:char;

 

procedure init;

var i,j,k:longint;

begin

 readln(n,m);

 fori:=1 to n do

 begin

  forj:=1 to m do

   begin

    read(ch);

    ifch='X' then a[i,j]:=-1;

   end;

 readln;

 end;

 fori:=1 to m do

  ifa[m,i]<>-1 then

  a[m,i]:=1;

 

 fori:=n-1 downto 1 do

  fork:=1 to m do

   begin

    ifa[i,k]<>-1 then

     ifa[i+1,k]=-1 then a[i,k]:=1

                    else a[i,k]:=a[i+1,k]+1;

   end;

end;

 

function max(x,y:longint):longint;

 begin

  ifx>y then exit(x)

        else exit(y);

 end;

 

procedure main;

 vari,j,k,min,x:longint;

begin

for i:=1 to n do

    forj:=1 to m do

     if a[i,j]>0 then

       begin

         x:=j; min:=maxlongint;

          while a[i,x]>0 do

           begin

              if a[i,x]<min thenmin:=a[i,x];

              if (x-j+1+min)*2-1>ans thenans:=(x-j+1+min)*2-1;

              inc(x);

           end;

       end;

     writeln(ans);

end;

 

begin

 init;

 main;

end.

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值