26:滑雪
来源:互联网 发布:贵州大数据平台 编辑:程序博客网 时间:2024/05/22 01:34
1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。
5 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
25题意:
就是每个位置可以从四个方向走,但是必须数是下降的,不然不能走,找出走的最长的距离
分析:
找到四个方向的最大值然后沿着走下去,就是局部最大就是全局最大
代码:
#include<bits/stdc++.h>using namespace std;int a[105][105]={0},n,m,f[105][105]={0},x[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int ok(int k,int l){ if(k>=1&&k<=n&&l>=1&&l<=m) return 1; else return 0;}int sear(int k,int l){ int i,x1,y1; if(f[k][l]) return f[k][l]; f[k][l]=1; for(i=0;i<4;i++) { x1=k+x[i][0]; y1=l+x[i][1]; if(ok(x1,y1)){ if(a[x1][y1]<a[k][l]) f[k][l]=max(sear(x1,y1)+1,f[k][l]); } } return f[k][l];}int main(){ int i,j,maxn; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; for(i=1,maxn=0;i<=n;i++) for(j=1;j<=m;j++) {f[i][j]=sear(i,j); if(maxn<f[i][j]) maxn=f[i][j]; } cout<<maxn<<endl;}感受:
就是细节处理有问题,耽误了时间
1 0
- 26:滑雪
- 26:滑雪
- 26:滑雪
- 26:滑雪
- 26:滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- unity渲染优化
- python logging 日志配置
- Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
- 并查集详解
- 快递100 物流接口对接
- 26:滑雪
- pat 1127. ZigZagging on a Tree
- unity的monoBebavior 函数时序
- 紫光为什么看重LATTICE的FPGA
- loadrunner第一次实践
- 第六章
- Android自定义控件-彩色进度条
- 287. Find the Duplicate Number
- html导航框架简析