poj 1088 滑雪
2015-07-20 14:17
309 查看
题目链接点击打开链接
参考自某大神思路,开一个结构体数组,储存点的位置及高度,一个数组,储存每个点的高度,一个数组,储存每个点的对应的最长下降序列长度,先对所有点按高度进行排序,然后从低到高检查每个点,在该点高度分别小于周围四个方向的点的高度且该点最长下降序列的长度大于对应方向的点的长度的情况下,对应点的长度等于该点的长度+1 ,最后求出长度的最大值
参考自某大神思路,开一个结构体数组,储存点的位置及高度,一个数组,储存每个点的高度,一个数组,储存每个点的对应的最长下降序列长度,先对所有点按高度进行排序,然后从低到高检查每个点,在该点高度分别小于周围四个方向的点的高度且该点最长下降序列的长度大于对应方向的点的长度的情况下,对应点的长度等于该点的长度+1 ,最后求出长度的最大值
#include<iostream> #include<stdio.h> #include<cstring> #include<algorithm> using namespace std; int he[110][110]; int len[110][110]; struct Note { int x,y,h; }a[10005]; int cmp( const void *a ,const void *b) //快速排序的参考函数 { if((*(Note *)a).h>(*(Note *)b).h) return 1; else return -1; } main() { int r,c; //freopen("in.txt","r",stdin); while(cin>>r>>c) { int n=-1; for(int i=0;i<r;i++) for(int j=0;j<c;j++) { scanf("%d",&he[i][j]); n++; a .x=i; a .y=j; a .h=he[i][j]; } qsort(a,r*c,sizeof(a[0]),cmp); memset(len,0,sizeof(len));//初始值设为0,最后要加1 for(int i=0;i<r*c;i++)//搜索 { if(he[a[i].x+1][a[i].y] > he[a[i].x][a[i].y] && len[a[i].x+1][a[i].y] <= len[a[i].x][a[i].y]) len[a[i].x+1][a[i].y] = len[a[i].x][a[i].y]+1; if(he[a[i].x][a[i].y+1] > he[a[i].x][a[i].y] && len[a[i].x][a[i].y+1] <= len[a[i].x][a[i].y]) len[a[i].x][a[i].y+1] = len[a[i].x][a[i].y]+1; if(he[a[i].x-1][a[i].y] > he[a[i].x][a[i].y] && len[a[i].x-1][a[i].y] <= len[a[i].x][a[i].y]) len[a[i].x-1][a[i].y] = len[a[i].x][a[i].y]+1; if(he[a[i].x][a[i].y-1] > he[a[i].x][a[i].y] && len[a[i].x][a[i].y-1] <= len[a[i].x][a[i].y]) len[a[i].x][a[i].y-1] = len[a[i].x][a[i].y]+1; } int ma=0; for(int i=0;i<r;i++) for(int j=0;j<c;j++) { ma=max(ma,len[i][j]); } printf("%d\n",ma+1); } }
相关文章推荐
- webform 验证码
- DOM元素的特性(Attribute)和属性(Property)
- [并查集]poj2236 Wireless Network
- Application.mk文件详解
- Android 代码混淆
- 动态生成juery-easyui下的折叠面板,在谷歌下格式不正确问题
- 联合(union)用法
- java反射的补充:桥接方法以及Spring中一些工具类
- Install Asterisk 11 on Ubuntu 12.04 LTS
- PendingIntent
- UINavigationController与UITabbarController的样式
- 关于无线路由器的一些思考
- yum install nginx
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解<转>
- 2012年5月SAT香港真题解析
- linux下的小工具和小常识
- 利用SSH反向通道在本地调试微信公共号
- JavaScript/jQuery WebIM 及时聊天通信工具 本地客户端
- UVALive 6510 Stickers
- LUA 配置 运行 异常的备忘录