BZOJ_5359_[Lydsy1805月赛]寻宝游戏_DP
BZOJ5359_[Lydsy1805月赛]寻宝游戏_DP
Description
begin.lydsy.com/JudgeOnline/upload/201805.pdf
我们需要找到一条权值最大的路,其中路上可以有K个点不计入答案,同时使不在路径上的K个点被计入答案。
设f[i][j][k][l]表示从(1,1)走到(i,j)路径上k个不算答案,路径外计入了l个。
转移的话先是考虑下一步走的点取不取,然后对应着一行/一列取多少个。
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;
typedef long long ll;
#define N 55
int n,m,K,a[N][N];
int g[N][N][N],h[N][N][N],f[N][N][21][21],lb,b[N];
void upd(int &x,int y) {
if(x<y) x=y;
}
void solve() {
scanf("%d%d%d",&n,&m,&K);
int i,j,k,l,d;
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
scanf("%d",&a[i][j]);
}
}
memset(g,0,sizeof(g)); memset(h,0,sizeof(h));
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
lb=0;
for(k=j+1;k<=m;k++) b[++lb]=-a[i][k];
sort(b+1,b+lb+1);
for(k=1;k<=lb;k++) g[i][j][k]=g[i][j][k-1]-b[k];
lb=0;
for(k=i+1;k<=n;k++) b[++lb]=-a[k][j];
sort(b+1,b+lb+1);
for(k=1;k<=lb;k++) h[i][j][k]=h[i][j][k-1]-b[k];
}
}
// for(i=1;i<=n;i++) {
// for(j=1;j<=m;j++) {
// printf("%d %d\n",g[i][j][1],g[i][j][2]);
// }
// }
memset(f,0x80,sizeof(f));
f[1][1][1][0]=0;
f[1][1][0][0]=a[1][1];
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
for(k=0;k<=K;k++) {
for(l=0;l<=K;l++) {
for(d=0;d<=K-l&&d<=m-j;d++) {
upd(f[i+1][j][k][l+d],f[i][j][k][l]+g[i][j][d]+a[i+1][j]);
upd(f[i+1][j][k+1][l+d],f[i][j][k][l]+g[i][j][d]);
}
for(d=0;d<=K-l&&d<=n-i;d++) {
upd(f[i][j+1][k][l+d],f[i][j][k][l]+h[i][j][d]+a[i][j+1]);
upd(f[i][j+1][k+1][l+d],f[i][j][k][l]+h[i][j][d]);
}
}
}
}
}
int ans=0;
for(i=0;i<=K;i++) ans=max(ans,f[n][m][i][i]);
printf("%d\n",ans);
}
int main() {
// freopen("game.in","r",stdin);
// freopen("game.out","w",stdout);
int T;
scanf("%d",&T);
while(T--) solve();
}
BZOJ_5359_[Lydsy1805月赛]寻宝游戏_DP的更多相关文章
- [Bzoj5359][Lydsy1805月赛]寻宝游戏(dp)
5359: [Lydsy1805月赛]寻宝游戏 Time Limit: 2 Sec Memory Limit: 512 MBSubmit: 71 Solved: 19[Submit][Status ...
- [BZOJ3991][SDOI2015]寻宝游戏
[BZOJ3991][SDOI2015]寻宝游戏 试题描述 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择 ...
- 【BZOJ】【3991】【SDOI2015】寻宝游戏
dfs序 我哭啊……这题在考试的时候(我不是山东的,CH大法吼)没想出来……只写了50分的暴力QAQ 而且苦逼的写的比正解还长……我骗点分容易吗QAQ 骗分做法: 1.$n,m\leq 1000$: ...
- 树形结构的维护:BZOJ 3991: [SDOI2015]寻宝游戏
Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可 ...
- bzoj 3991: [SDOI2015]寻宝游戏
Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可 ...
- 【BZOJ3991】【SDOI2015】寻宝游戏
Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然 ...
- Loj #2494. 「AHOI / HNOI2018」寻宝游戏
Loj #2494. 「AHOI / HNOI2018」寻宝游戏 题目描述 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得 ...
- 【BZOJ5285】[HNOI2018]寻宝游戏(神仙题)
[BZOJ5285][HNOI2018]寻宝游戏(神仙题) 题面 BZOJ 洛谷 题解 既然是二进制按位的运算,显然按位考虑. 发现这样一个关系,如果是\(or\)的话,只要\(or\ 1\),那么无 ...
- BZOJ.5285.[AHOI/HNOI2018]寻宝游戏(思路 按位计算 基数排序..)
BZOJ LOJ 洛谷 话说vae去年的专辑就叫寻宝游戏诶 只有我去搜Mystery Hunt和infinite corridor了吗... 同样按位考虑,假设\(m=1\). 我们要在一堆\(01\ ...
随机推荐
- java 获取微信 页面授权 获取用户openid
先调用微信的地址 跳转https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4b4009c4fce00e0c&redirect ...
- 【设计模式】C++单例模式的几种写法——Java自动加载内部类对象,C++怎么破?
单例模式是最简单的设计模式,就让我像玩简单的游戏一样写下去吧. v1: 简单模式 和这个版本有过一面之缘,但不敢苟同. class Singleton { private: Singleton() { ...
- python学习(二)python中的核心数据类型
数据类型是编程语言中的很重要的一个组成部分,我所知道的有数据类型的好处有:在内存中存放的格式知道,规定了有哪几种可用的操作. 我的埋点:为什么要有数据类型 那么python中的数据类型有哪几种呢? 对 ...
- php解析带有命名空间的xml
xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...
- (个人开源)ffpanel --ffmpeg的GUI,让ffmpeg离开黑黑的命令行
程序及源代码下载地址 :https://github.com/langsim/ffpanel
- vue-strap 修改Modal组件
在用到vue-strap的Modal组件时,会有两个默认按钮,查看官方文档配置如下: 可以看到,ok-text和cancel-text都有一个默认值,在使用时即使不给这两个选项赋值,也会显示两个默认文 ...
- struts2 jsp提交日期类型转换及国际化实现
概述:下面通过jsp提交输入注册信息信息,同时完成过程文件国家化问题演示说明.[注册日期转换用注解方式实现] 工程截图: 注册页面jsp文件: <%@ page language="j ...
- mac svn命令行使用入门
本文转载至 http://blog.sina.com.cn/s/blog_6bfa2fc10101euf6.html mac svn命令行使用入门 1. 初始化项目 svn import /Use ...
- PDO:: 数据访问抽象层 ? :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...