poj 1088 滑雪(贪心算法)
思想: (贪心算法 ,看到题目是中文才做的)
- 先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1
- 这样计算最后产生的路径肯定是最大的
- (看discuss中,有动态规划和dfs实现的代码,回头看看)
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 10005
/*488K 63MS*/
typedef struct _point
{
int x;
int y;
int w;//权重
}point; int cmp(const void *a,const void *b);
int main()
{
int r,c;
cin>>r>>c; point p[MAX];
int a[102][102];
int index=0;
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
{
p[index].x=i;
p[index].y=j;
cin>>a[i][j];
p[index++].w=a[i][j];
} qsort(p,index,sizeof(p[0]),cmp); //贪心算法
int b[102][102];
memset(b,0,sizeof(b)); int result=0;
for(int i=0;i<index;i++)
{
//计算四周的值的大小
int max=1;
int x=p[i].x;
int y=p[i].y;
int w=p[i].w;
//up
if(x>0)
{
if(w>a[x-1][y]&&max<=b[x-1][y])
max=b[x-1][y]+1;
}
//down
if(x<r-1)
{
if(w>a[x+1][y]&&max<=b[x+1][y])
max=b[x+1][y]+1;
}
//left
if(y>0)
{
if(w>a[x][y-1]&&max<=b[x][y-1])
max=b[x][y-1]+1;
}
//right
if(y<r-1)
{
if(w>a[x][y+1]&&max<=b[x][y+1])
max=b[x][y+1]+1;
}
b[x][y]=max;
if(result<max)
result=max;
} cout<<result<<endl;
system("pause");
return 0;
} int cmp(const void *a,const void *b)
{
return ((*(point *)a).w-(*(point *)b).w);
}
poj 1088 滑雪(贪心算法)的更多相关文章
- POJ 1088 滑雪(记忆化搜索+dp)
POJ 1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 107319 Accepted: 40893 De ...
- POJ 1088 滑雪(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 92384 Accepted: 34948 Description ...
- POJ 1088 滑雪 【记忆化搜索经典】
题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...
- POJ 2287 田忌赛马 贪心算法
田忌赛马,大致题意是田忌和国王赛马,赢一局得200元,输一局输掉200元,平局则财产不动. 先输入一个整数N,接下来一行是田忌的N匹马,下一行是国王的N匹马.当N为0时结束. 此题为贪心算法解答,有两 ...
- POJ 1088 滑雪 -- 动态规划
题目地址:http://poj.org/problem?id=1088 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...
- OpenJudge/Poj 1088 滑雪
1.链接地址: bailian.openjudge.cn/practice/1088 http://poj.org/problem?id=1088 2.题目: 总Time Limit: 1000ms ...
- poj 1088 滑雪(区间dp+记忆化搜索)
题目链接:http://poj.org/problem?id=1088 思路分析: 1>状态定义:状态dp[i][j]表示在位置map[i][j]可以滑雪的最长区域长度: 2>状态转移方程 ...
- POJ 1088 滑雪 (记忆化搜索)
题目链接:http://poj.org/problem?id=1088 题意很好懂,就是让你求一个最长下降路线的长度. dp[i][j]记录的是i j这个位置的最优的长度,然后转移方程是dp[i][j ...
- poj 1088 滑雪 DP(dfs的记忆化搜索)
题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 ...
随机推荐
- POJ 2114 Boatherds 划分树
标题效果:鉴于一棵树,问有两点之间没有距离是k的. 数据的多组 思维:和IOI2011的Race喜欢.不是这么简单.阅读恶心,我是在主要功能的别人的在线副本. CODE: #include <c ...
- Installshield停止操作系统进程的代码 --IS6及以上版本适用
原文:Installshield停止操作系统进程的代码 --IS6及以上版本适用 setup.rul的代码 Code;end;///////////////////////////////////// ...
- Ajax.ActionLink 用法
Ajax.ActionLink 用法 Ajax 属性的ActionLink方法可以创建一个具有异步行为的锚标签. ActionLink方法的第一个参数指定了链接文本,第二个参数是要异步调用的操作的名称 ...
- QML Image得到的图片资源路径的详细信息
最近又开始了Qt5.在学习QML当地的资源总是越来越留念类似 " QML Image: Cannot open: qrc:///images/Blue hills.jpg "的错误 ...
- UC编程:输入输出重定向(系统调用)
在Unix下,系统重定向是使用dup和dup2函数完成的 在学习使用这两个函数之前,必须要搞懂一个概念就是文件描述符 摘自:<文件描述符和文件指针的区别> 文件描述符就是open文件时产生 ...
- 【SSRS】入门篇(六) -- 分组和总计
原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加 ...
- ASP.NET vNext 在 Mac OS
让 ASP.NET vNext 在 Mac OS 中飞呀飞... 写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homeb ...
- DDD领域驱动设计
DDD领域驱动设计实践篇之如何提取模型 需求说明: 省级用户可以登记国家指标 省级用户和市级用户可以登记指标分解 登记国家指标时,需要录入以下数据:指标批次.文号.面积,这里省略其他数据,下同 登记指 ...
- des和Rijndael加密
------------IV的作用: 为了保证数据的安全,.NET基类库中提供的私钥算法类使用称作密码块链(CBC,Cipher Block Chaining)的链模式,算法使用一个密钥和一个初始化向 ...
- javaFile循环列出指定目录下的所有文件(源代码)
package javatest.basic22; import java.io.File; import java.io.IOException; public class FileTest { p ...