hdu5024
思路要开阔些,或者说要转化一下思路,别太死
把每一个点当拐点,爆一边就能够。用记忆化搜索也行。都不会超时
#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的更多相关文章
- 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 ...
- hdu5024(dp)
意甲冠军: 薛期呵和王熙凤不想很接近生活(因为假定他们一起,柴可能取代王熙凤) 现在'.'事情是这样的.'#'一堵墙.薛期呵对宝让生活远: 因此,选择一个最长的公路,让他们住在两端: 路达一个转折点. ...
随机推荐
- JavaScript总结(2)
<!--脚本部分-->06 <script type="text/javascript">07 date_object=new Date();08 what ...
- caffe(10) 命令行解析
caffe的运行提供三种接口:c++接口(命令行).python接口和matlab接口.本文先对命令行进行解析,后续会依次介绍其它两个接口. caffe的c++主程序(caffe.cpp)放在根目录下 ...
- 20180929 北京大学 人工智能实践:Tensorflow笔记06
入戏 需要修改成如下: (完)
- caioj 1106 树形动态规划(TreeDP)1:加分二叉树
解这道题的前提是非常熟悉中序遍历的方式 我就是因为不熟悉而没有做出来 中序遍历是5 7 1 2 10的话,如果1是根节点 那么5 7 1就是1的左子树,2, 10就是右子树 这就有点中链式dp的味道了 ...
- CSU 1374 Restore Calculation 数位DP
题意: 给你三个数A, B, C(没有前导0),但是其中某些位不知道. 问A+B=C成立有多少种情况. 思路: 从最后一位往前推,枚举A, B的每一种情况,考虑进位和不进位两种情况. 代码: #inc ...
- 洛谷 P1302 可见矩形
P1302 可见矩形 题目描述 给定平面上n个互不相交(指公共面积为零)的正方形,它们的顶点坐标均为整数.设坐标原点为O(0, 0).对于任一正方形R,如果可以找到R的边上2个不同的点A和B,使三角形 ...
- glEnable(GL_DEPTH_TEST)作用
glEnable(GL_DEPTH_TEST): 用来开启更新深度缓冲区的功能,也就是,如果通过比较后深度值发生变化了,会进行更新深度缓冲区的操作.启动它,OpenGL就可以跟踪再Z轴上的像素,这样, ...
- 【SICP练习】152 练习4.8
练习4-8 原文 Exercise 4.8. "Named let" is a variant of let that has the form (let <var> ...
- UVA 12716 GCD XOR(数论+枚举+打表)
题意:给你一个N,让你求有多少组A,B, 满足1<= B <= A <= N, 且 gcd(A,B) = A XOR B. 思路:首先我们能够得出两个结论: A-B > ...
- shell 脚本去掉月份和天数的前导零
#!/bin/sh # # shell 脚本去掉月份和天数的前导零 # 前面填 1 变成百位数,然后减 100 # 去掉前导零的通用方法 $((10#$(date +%m))) # 把字符串分割成数组 ...