zoukankan      html  css  js  c++  java
  • HDU 1505 City Game【DP】

    题意:是二维的1506,即在1506的基础上,再加一个for循环,即从第一行到最后一行再扫一遍---


    自己写的时候,输入的方法不对---发现输不出结果,后来看了别人的----@_@
    发现是将字母和空格当成一个字符串来输入的。

    #include<iostream>  
    #include<cstdio>  
    #include<cstring>  
    #include<algorithm>  
    using namespace std;
    int h[1010][1010],l[1010],r[1010];
    char c[105];
    int main()
    {
    	int ncase,n,m,i,j,ans,tmp;
    	char ch;
    	scanf("%d",&ncase);
    	while(ncase--)
    	{
    		ans=0;
    		scanf("%d %d",&m,&n);
    		for(i=1;i<=m;i++)
    		{
    			for(j=1;j<=n;j++)
    			{
    				scanf("%s",c);//输入是将字母和空格当成了一个字符串 
    				if(c[0]=='F') h[i][j]=h[i-1][j]+1;
    				else h[i][j]=0;		
    			}
    		}
    		
    		for(i=1;i<=m;i++)
    		{
    			h[i][0]=-1;h[i][n+1]=-10000;//边界的值可以规定为任意负数 
    			for(j=1;j<=n;j++)
    			l[j]=r[j]=j;			
    			for(j=2;j<=n;j++)
    			{
    				while(h[i][l[j]-1]>=h[i][l[j]])
    				l[j]=l[l[j]-1];
    			}
    			for(j=n-1;j>=1;j--)
    			{
    				while(h[i][r[j]+1]>=h[i][r[j]])
    				r[j]=r[r[j]+1];
    			}
    			for(j=1;j<=n;j++)
    			{
    				tmp=h[i][j]*(r[j]-l[j]+1);
    				if(tmp>ans) ans=tmp;
    			}
    		}
    		printf("%d
    ",ans*3);		
    	}
    }
    

      

  • 相关阅读:
    js小程序
    事务的概念
    为期一个月培训的总结
    软件测试培训总结篇2
    软件测试培训总结篇1
    软件测试培训第30天
    软件测试培训第29天
    软件测试培训第28天
    软件测试培训第26天
    软件测试培训第27天
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4285435.html
Copyright © 2011-2022 走看看