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的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 ...
随机推荐
- IOS开发之——使用SBJson拼接Json字符串
SBJson包的下载地址在上一篇文章中. 能够使用NSDictionary中的键值对来拼接Json数据,很方便,也能够进行嵌套,直接上代码: //開始拼接Json字符串 NSDictionary *d ...
- loadrunner监控度量项及中文解释
1. Number of Concurrent Users (NCU) 并发用户数 – 在指定时刻,系统观察到的并发用户连接数. 2. Request Per Second (RPS) 每秒处理请求数 ...
- curl_redir_exec()函数
function curl_redir_exec($ch,$debug="") { static $curl_loops = 0; static $curl_max_loops = ...
- SQL点滴7—使用SQL Server的attach功能出现错误及解决方法
原文:SQL点滴7-使用SQL Server的attach功能出现错误及解决方法 今天用SQL Server 2008的attach功能附加一个数据库,出了点问题,提示的错误是: Unable to ...
- Dotfuscator类重命名方法解析
Dotfuscator是专业的.NET程序代码混淆工具,拥有重命名.字符串加密.流程模糊.自定义规则和水印等功能,倍受开发人员喜爱.其中类重命名的使用方法非常普遍,涉及到既要保护代码信息,又要在以后能 ...
- android音乐播放器开发 SweetMusicPlayer
智能负载直插式歌词
在一份书面的使用MediaPlayer播放音乐, http://blog.csdn.net/huweigoodboy/article/details/39862773.假设没有本地歌词怎么办?如今来将 ...
- css @media认识
css2的@media css2里面尽管支持@media属性.可是能实现的功能比較少,一般仅仅用做打印的时候做特殊定义的CSS. 语法: @media sMedia { sRules } 说明: sM ...
- web 富文本编辑器总结
前言 富文本编辑器,就是除了能输入不同的文本之外,还可以之间粘贴图画等其他的多媒体信息.也可说是所见即所得的编辑器. 目前可以使用的编辑器有很多, 在网络上有找到这样一份比较表格: 编辑器 产地 稳定 ...
- Binder机制,从Java到C (1. IPC in Application Remote Service)
转载请标注:张小燕:http://www.cnblogs.com/zhangxinyan 1. Application 中的 service 我们知道Android中Service有三种类型:Loca ...
- E-mail Composition and Decoding
一.邮件涉及协议及本文说明1. 协议 SMTP(Simple Mail Transfer Protocal) 简单邮件传输协议,用于发送邮件. MIME(Mutipurpose Internet Ma ...