【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ
暴力
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 701
const int dx[]={0,0,-1,1},dy[]={-1,1,0,0};
int n,mem[N][N],a[N][N],m;
bool cant[N][N];
int f(int x,int y)
{
if(mem[x][y]) return mem[x][y];
mem[x][y]=1;
for(int i=0;i<4;++i)
if(x+dx[i]>0&&x+dx[i]<=n&&y+dy[i]>0&&y+dy[i]<=n&&(!cant[x+dx[i]][y+dy[i]])&&a[x][y]>a[x+dx[i]][y+dy[i]])
mem[x][y]=max(mem[x][y],f(x+dx[i],y+dy[i])+1);
return mem[x][y];
}
int main()
{
int A,B,C,D; char op[2];
scanf("%d",&n);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
scanf("%d",&a[i][j]);
scanf("%d",&m);
for(;m;--m)
{
scanf("%s",op);
if(op[0]=='C')
{
scanf("%d%d%d",&A,&B,&C);
a[A][B]=C;
}
else if(op[0]=='S')
{
scanf("%d%d%d%d",&A,&B,&C,&D);
for(int i=A;i<=C;++i)
for(int j=B;j<=D;++j)
cant[i][j]=1;
}
else if(op[0]=='B')
{
scanf("%d%d%d%d",&A,&B,&C,&D);
for(int i=A;i<=C;++i)
for(int j=B;j<=D;++j)
cant[i][j]=0;
}
else
{
int ans=1;
memset(mem,0,sizeof(mem));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(!cant[i][j])
ans=max(ans,f(i,j));
printf("%d\n",ans);
}
}
return 0;
}
【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ的更多相关文章
- bzoj3208: 花神的秒题计划Ⅰ
3208: 花神的秒题计划Ⅰ Time Limit: 16 Sec Memory Limit: 128 MBSubmit: 323 Solved: 211[Submit][Status] Desc ...
- BZOJ3208:花神的秒题计划Ⅰ(记忆化搜索DP)
Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题…… 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区 ...
- bzoj 3208 花神的秒题计划I
bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...
- BZOJ-3208|记忆化搜索-花神的秒题计划Ⅰ
背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目. 我 ...
- 线性dp(记忆化搜索)——cf953C(经典好题dag和dp结合)
非常好的题!和spoj 的 Mobile Service有点相似,用记忆化搜索很容易解决 看了网上的题解,也是减掉一维,刚好可以开下数组 https://blog.lucien.ink/archive ...
- bzoj3208:花神的秒题计划I
思路:因为Q.S.B操作总和不超过100,因此怎么暴力怎么写....当然记忆化搜索还是要的 #include<cstdio> #include<iostream> #inclu ...
- 【bzoj3208】花神的秒题计划Ⅰ
记忆化搜索 #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib ...
- BZOJ 3208: 花神的秒题计划Ⅰ
这就是一道滑雪嘛= = 所有操作都爆力,求路径就dp,完了 CODE: #include<cstdio>#include<iostream>#include<algori ...
- hdu 1142(迪杰斯特拉+记忆化搜索)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
随机推荐
- 洛谷P1346 电车
P1346 电车 236通过 757提交 题目提供者yeszy 标签图论福建省历届夏令营 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 解不好啊,快疯了!!哪位大… 求解:为何除了-1的点之 ...
- mysql的中文乱码问题
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...
- Junit使用的超简单介绍
Junit使用的超简单介绍 前言:我对Junit了解的并不多,只是今天突然听到有人提到了它,而且现在时间还早,所以我觉得我不妨更一篇关于Junit4的超级超级简单的用法,全当是为了省去看官网demo的 ...
- 【HDU3853】LOOPS [期望DP]
LOOPS Time Limit: 5 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Description Akemi Homura is a ...
- 【BZOJ1901】Dynamic Rankings [整体二分]
Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定一个含 ...
- 【BZOJ】1592: [Usaco2008 Feb]Making the Grade 路面修整
[算法]动态规划DP [题解] 题目要求不严格递增或不严格递减. 首先修改后的数字一定是原来出现过的数字,这样就可以离散化. f[i][j]表示前i个,第i个修改为第j个数字的最小代价,a表示排序后数 ...
- swift xcode设置 ,代码折叠,全局折叠 快捷键
在preference text editing 里面打开 function 折叠的项, 折叠方法快捷键: option+command +left/right 全局折叠快捷键: shift+opti ...
- Git服务器安装详解及安装遇到问题解决方案【转】
转自:http://www.cnblogs.com/grimm/p/5368777.html git是一个不错的版本管理的工具.现在自己在搞一个简单的应用程序开发,想使用git来进行管理.在Googl ...
- python访问网站
#!/usr/bin/env python # encoding: utf-8 from functools import wraps import requests from lxml import ...
- C#字节数组的常用解码处理方法
在某些情况下,比如说串口通信或者读取二进制的文件,通常会得到一个byte数组形式的数据. 然而对于这个数据处理常常令人苦恼,因为通常通信情况下,并不是一个字节代表一个字符或者某个数据,而是数据夹杂在字 ...