思路要开阔些,或者说要转化一下思路,别太死

把每一个点当拐点,爆一边就能够。用记忆化搜索也行。都不会超时

#include<bits/stdc++.h>
using namespace std;
int n;
#define o ans=max(ans,
char C[105][105]; int f(int i,int j,int a,int b){
int k=0;
while(1){
if(i<0||j<0||i>=n||j>=n||C[i][j]!='.') break;
i+=a; j+=b; k++;
}
return k;
} int main()
{
while(scanf("%d",&n)&&n){
for(int i=0;i<n;i++ ) scanf("%s",C[i]);
int ans=-1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
if(C[i][j]=='.'){
o f(i,j,0,1)+f(i,j,1,0)-1);
o f(i,j,0,1)+f(i,j,-1,0)-1);
o f(i,j,0,-1)+f(i,j,1,0)-1);
o f(i,j,0,-1)+f(i,j,-1,0)-1);
o f(i,j,-1,1)+f(i,j,1,1)-1);
o f(i,j,1,1)+f(i,j,1,-1)-1);
o f(i,j,-1,-1)+f(i,j,1,-1)-1);
o f(i,j,-1,-1)+f(i,j,-1,1)-1);
}
}
printf("%d\n",ans);
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define maxn 105
int n;
const int dx[]= {0,-1,0,1,-1,1,1,-1};
const int dy[]= {-1,0,1,0,-1,-1,1,1};
int dp[maxn][maxn][8] , ans;
char mapp[maxn][maxn];
int DFS(int x,int y,int dir){
if(dp[x][y][dir]!=-1) return dp[x][y][dir];
if(mapp[x +dx[dir] ][y+ dy[dir] ]=='.')
return dp[x][y][dir]=1+DFS(x+dx[dir],y+dy[dir],dir);
else return dp[x][y][dir]=1;
}
void cal(int x,int y,int d1,int d2){
ans = max(ans, DFS(x,y,d1)+DFS(x,y,d2)-1);
}
int main()
{
while(scanf("%d",&n)!=EOF && n){
memset(mapp,1,sizeof(mapp));
memset(dp,-1,sizeof(dp));
ans=-1;
for(int i=0;i<n;i++) scanf("%s",mapp[i]);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(mapp[i][j]=='.'){
for(int k=0;k<4;k++){
cal(i,j,k%4,(k+1)%4);
cal(i,j,4+k%4,4+(k+1)%4);
}
}
}
printf("%d\n",ans);
}
return 0;
}

hdu5024的更多相关文章

  1. hdu5024 Wang Xifeng's Little Plot (水

    http://acm.hdu.edu.cn/showproblem.php?pid=5024 网络赛 Wang Xifeng's Little Plot Time Limit: 2000/1000 M ...

  2. hdu5024(dp)

    意甲冠军: 薛期呵和王熙凤不想很接近生活(因为假定他们一起,柴可能取代王熙凤) 现在'.'事情是这样的.'#'一堵墙.薛期呵对宝让生活远: 因此,选择一个最长的公路,让他们住在两端: 路达一个转折点. ...

随机推荐

  1. windows电脑空间清理

    最近电脑空间又快满了,想下载一些好电影音频资源都要先临时清理一些文件才行,今天有时间就彻底整理一下,将整理过程及用到的好工具都记录一下,方面下次再遇到问题时可以很方面的参考执行. 1.分析磁盘空间占用 ...

  2. A string is a sequence

    A string is a sequence of characters. You can access the characters one at a time with the bracket o ...

  3. POJ 3671 DP or 乱搞

    思路: 1.DP f[i][j]:前i个数 最后一个数是j的最小花费 f[i][j]=min(f[i][j],f[i-1][k]+(a[i]!=j));1<=k<=j 这种做法比较有普遍性 ...

  4. ZooKeeper Recipes and Solutions

    原文地址:http://zookeeper.apache.org/doc/current/recipes.html 参考:https://zookeeper.apache.org/doc/trunk/ ...

  5. PGA和UGA内存的使用情况

    引用thomas kyte的PGA和UGA的统计内存的使用情况,用排序区不同的大小来查看pga.UGA.物理读取不同内存使用 会话1:创建测试表和测试不同排序大小 create table t as ...

  6. PostgreSQL Replication之第七章 理解Linux高可用(1)

    高可用(HA)是工业长期持续的,不间断的服务.在本章,您将了解高可用软件的历史,概念和实现与PostgreSQL复制和高可用之间的关系. 本章将详细地讲述如下主题: •理解高可用性的目的 •衡量可用性 ...

  7. poj2823/hdu3415 - 数据结构 单调队列

    poj2823 题目链接 长度为N的数组,求宽度k的滑动窗口在数组上滑动时窗口内的最大值或最小值 如果用单调队列做,求最小值时,队列应该严格递增的.所以插入时,队尾大于等于插入值的元素都应被舍弃,因为 ...

  8. c#做对比软件

    一些 HTML内容比较/文本差异比较 开源代码 1. DiffPlex - a .NET Diff Generator    http://diffplex.codeplex.com/SourceCo ...

  9. Mac系统下安装pip

    Mac下 pip的安装 编译 Python3.7 终端输入: curl https://bootstrap.pypa.io/get-pip.py | python3 1 安装完成,检查版本信息 pip ...

  10. [APIO2010]巡逻(树的直径)

    [APIO2010]巡逻 题目描述 在一个地区中有 n 个村庄,编号为 1, 2, ..., n.有 n – 1 条道路连接着这些村 庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到 ...