skiing 暴力搜索 + 动态规划
我的代码上去就是 直接纯粹的 暴力 . 居然没有超时 200ms 可能数据比较小 一会在优化
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<limits.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
int n,m,a[][],visited[][],b[][]={,-,,,-,,,},minn;
void DFS(int y,int x,int now)
{
for(int i=;i<;i++)
{
int x1=x+b[i][],y1=y+b[i][];
if(x1>=&&x1<m&&y1>=&&y1<n&&!visited[y1][x1]&&a[y1][x1]<a[y][x])
{
now++;
if(now>minn)
minn=now;
visited[y1][x1]=;
DFS(y1,x1,now);
visited[y1][x1]=;
now--;
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&m,&n);
for(int i=;i<n;i++)
for(int j=;j<n;j++)
scanf("%d",&a[i][j]);
minn=;
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
memset(visited,,sizeof(visited));
visited[i][j]=;
DFS(i,j,);
}
printf("%d\n",minn);
}
}
下面附上 动态规划的 解法 这个 动态规划 是一种 人人为我 , 的思想 , 先根据 高度进行从小到的 排序 然后 然后从 第二小的 开始 检查 周围是否 有比他 还小的 , 如果有的话 , 将周围的 +1 个 自身相比 取最大值 , 废话少说 放码过来
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<limits.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
struct node
{
int x,y,h;
}a[];
bool cmp(node example_a,node example_b)
{
return example_a.h<example_b.h;
}
int b[][]={,-,,,-,,,},c[][],d[][];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
int total=;
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
d[i][j]=;
scanf("%d",&c[i][j]);
a[total].h=c[i][j],a[total].x=j,a[total].y=i; // 将所有的 长度 默认为 1
total++;
}
}
sort(a,a+total,cmp);
int maxn=;
for(int i=;i<total;i++) // 从 第二小的 开始 当周围 有 比他小 的 就 +1
{
for(int j=;j<;j++)
{
if(a[i].x+b[j][]>=&&a[i].x+b[j][]<m&&a[i].y+b[j][]>=&&a[i].y+b[j][]<n&&c[a[i].y][a[i].x]>c[a[i].y+b[j][]][a[i].x+b[j][]])
{
d[a[i].y][a[i].x]=max(d[a[i].y][a[i].x],d[a[i].y+b[j][]][a[i].x+b[j][]]+);
maxn=max(maxn,d[a[i].y][a[i].x]);
}
}
}
printf("%d\n",maxn);
}
return ;
}
skiing 暴力搜索 + 动态规划的更多相关文章
- ACM 暴力搜索题 题目整理
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...
- hdu 4740 The Donkey of Gui Zhou(暴力搜索)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...
- 区间Dp 暴力枚举+动态规划 Hdu1081
F - 最大子矩形 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Des ...
- hdu 1427 速算24点 dfs暴力搜索
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- 随手练——洛谷-P1151(枚举与暴力搜索)
枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...
- 枚举进程——暴力搜索内存(Ring0)
上面说过了隐藏进程,这篇博客我们就简单描述一下暴力搜索进程. 一个进程要运行,必然会加载到内存中,断链隐藏进程只是把EPROCESS从链表上摘除了,但它还是驻留在内存中的.这样我们就有了找到它的方法. ...
- [luogu 1092] 虫食算 (暴力搜索剪枝)
传送门 Description Input 包含四行. 第一行有一个正整数 (N≤26). 后面的三行,每行有一个由大写字母组成的字符串,分别代表两个加数以及和.这3个字符串左右两端都没有空格,从高位 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
- 吴裕雄 python 机器学习——模型选择参数优化暴力搜索寻优GridSearchCV模型
import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_rep ...
随机推荐
- 微信小程序支付全问题解决
这几天在做小程序的支付,没有用官方的SDK,这里就纯用官方的文档搞一发. * 注作者使用的PHP,不过支付流程都是这样 开发前必读 主要流程 小程序前端发送求参请求 接受请求封装 "统一下单 ...
- git 连接github.com 并配置密钥
传送门:http://www.jianshu.com/p/ff1034ed270e #备份ssh cd ~/.ssh $ ls $ mkdir key_backup //创建备份文件夹 $ cp id ...
- circumferential averaged streamwise velocity in ParaView
Goal: get a averaged axial velocity in a circular loop (dashed line in the following figure) Steps: ...
- sql学习笔记:表的运算
在MICK的<SQL基础教程>里读到的一章,写的很好,之前很乱的思路变清晰了很多.简单来说,表的运算主要是两种:列的运算和行的运算. 表的加减法 这里是对表的列操作(向下扩展).因此,按照 ...
- 手动模拟一个类似jquery的ajax请求
var $ = { parms:function(obj){ var str = ''; for(var k in obj){ str +=k+'='+obj[k]+'&'; } str = ...
- 将网络图片转换为base64
public static function htmlPdf() { $img_path = Env::get('ROOT_PATH').'/public/images/wechat/user.jpg ...
- ds020507
芯片输出端不加负载的时候,芯片的输出电压是9点多伏. 加上大的负载,芯片发热,电压接近输入电压. 正常负载,芯片输出7.0几伏. 版权声明:本文为博主原创文章,未经博主允许不得转载.
- nyoj 113 字符串替换 (string中替换函数replace()和查找函数find())
字符串替换 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 ...
- Android第三方开源SwitchButton
Android第三方开源SwitchButton Android SwitchButton是github上的一个第三方开源项目,其项目主页是:https://github.com/kyleduo/Sw ...
- sdibt 1244类似于拓扑排序
博客:http://blog.csdn.net/mypsq/article/details/39005991 #include<stdio.h> #include<string.h& ...