BZOJ3208:花神的秒题计划Ⅰ(记忆化搜索DP)
Description
Input
第一行n,第二行开始n*n的地图,意义如上;接下来一个m,然后是m个命令,如上
Output
Sample Input
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
5
C 1 1 3
Q
S 1 3 5 5
S 3 1 5 5
Q
Sample Output
3
样例解释:
第一个Q路线为:25->24->23->22….->3->2
第二个Q的路线为:10->9->2
HINT
100%的数据:1<=n<=700;1<=m<=1000000;其中Q、S、B操作总和<=100;
题中所有数据不超过2*10^9
Solution
暴力可过 心态崩了
Code
#include<iostream>
#include<cstring>
#include<cstdio>
#define N (709)
using namespace std; int n,m,x,y,z,c,ans,a[N][N],f[N][N],lim[N][N];
int dx[]={,,-,,},dy[]={,,,,-};
char opt[]; int DP(int x,int y)
{
if (lim[x][y]) return -;
if (f[x][y]!=-) return f[x][y];
f[x][y]=;
for (int i=; i<=; ++i)
{
int xx=x+dx[i], yy=y+dy[i];
if (xx< || xx>n || yy< || yy>n || a[x][y]<=a[xx][yy]) continue;
f[x][y]=max(f[x][y],DP(xx,yy)+);
}
return f[x][y];
} void Update(int x,int y,int xx,int yy,int opt)
{
for (int i=x; i<=xx; ++i)
for (int j=y; j<=yy; ++j) lim[i][j]=opt;
} inline int read()
{
int x=; char ch=getchar();
while (ch<'' || ch>'') ch=getchar();
while (ch>='' && ch<='') x=x*+ch-'',ch=getchar();
return x;
} int main()
{
n=read();
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
a[i][j]=read();
m=read();
while (m--)
{
scanf("%s",opt);
if (opt[]!='Q') x=read(),y=read(),z=read();
if (opt[]=='C') a[x][y]=z;
if (opt[]=='S') c=read(),Update(x,y,z,c,);
if (opt[]=='B') c=read(),Update(x,y,z,c,);
if (opt[]=='Q')
{
memset(f,-,sizeof(f)); ans=;
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
ans=max(ans,DP(i,j));
printf("%d\n",ans);
}
}
}
BZOJ3208:花神的秒题计划Ⅰ(记忆化搜索DP)的更多相关文章
- bzoj3208: 花神的秒题计划Ⅰ
3208: 花神的秒题计划Ⅰ Time Limit: 16 Sec Memory Limit: 128 MBSubmit: 323 Solved: 211[Submit][Status] Desc ...
- 【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ
暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #de ...
- bzoj 3208 花神的秒题计划I
bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...
- 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...
- BZOJ-3208|记忆化搜索-花神的秒题计划Ⅰ
背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目. 我 ...
- bzoj3208:花神的秒题计划I
思路:因为Q.S.B操作总和不超过100,因此怎么暴力怎么写....当然记忆化搜索还是要的 #include<cstdio> #include<iostream> #inclu ...
- 【bzoj3208】花神的秒题计划Ⅰ
记忆化搜索 #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib ...
- 记忆化搜索 dp学习~2
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1331 Function Run Fun Time Limit: 2000/1000 MS (Java/ ...
- 【10.31校内测试】【组合数学】【记忆化搜索/DP】【多起点多终点二进制拆位Spfa】
Solution 注意取模!!! Code #include<bits/stdc++.h> #define mod 1000000007 #define LL long long usin ...
随机推荐
- as3中xml文件的加载和读取
---恢复内容开始--- as代码如下: xml如下: 总结: 用URLReuqest对象加载xml的url 创建一个URLLoader对象,将1中的URLRequest指定给他 给URLLoader ...
- Vim 技巧
:r 文件名 导入另一文件到当前文件中 :! 命令 可以不退出当前编辑的文本而能执行系统的命令 自定义快捷键 注意这里的^P这个是ctrl + V + P :map ^P I//<ESC> ...
- Ubuntu14.04默认cmake升级为3.x
由于Ubuntu14.04的cmake版本为2.8.x,而如果需要cmake3.x版本时,无法生成makefile,有两种方法可以安装cmake3.4.1: sudo apt-get install ...
- kinect 深度图像去噪算法
算法设计思路 (1)读取16位深度图像到待处理图像帧组: (2)ROI区域计算 由于kinect 彩色摄像头和红外深度摄像头是存在视角偏差的,经过视角对齐后,得到的深度图像是有黑边的.此处通过取帧组第 ...
- JavaWeb学习总结(九):Cookie进行会话管理
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...
- redux、immutablejs和mobx性能对比(三)
四.我的结论 通过第三部分的数据数据分析,我觉得我们可以得到以下结论: 无论是在开发环境还是测试环下页面的首次加载速度结果都是:redux>immutablejs>mobx,但是他们之间的 ...
- svn add @2x image 文件
svn add `svn status . | grep "^?" | awk '{print $2"@"}'`
- 样式 bootstrap purecss Amaze UI 推荐
Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAV ...
- 微信小程序一个页面多个按钮分享怎么处理
首先呢,第一步先看api文档: 组件:button https://developers.weixin.qq.com/miniprogram/dev/component/button.html 框架- ...
- maven(15),快照与发布,RELEASE与SNAPSHOT
发布RELEASE 用户A将代码打包发布到RELEASE仓库,具体操作参考上篇文章.用户B使用时,需要在pom.xml添加JAR包的依赖坐标.如果用户A将版本从1.0升级为2.0,用户B使用时也 ...