[Bzoj5359][Lydsy1805月赛]寻宝游戏(dp)
5359: [Lydsy1805月赛]寻宝游戏
Time Limit: 2 Sec Memory Limit: 512 MB
Submit: 71 Solved: 19
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
Source
AC代码:
# include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
using namespace std;
int f[][][][],a[],b[],s[][],g[][][],h[][][],n,m,K,dt;
bool cmp(int x,int y){return x > y;}
void init()
{
memset(g,,sizeof g);
memset(h,,sizeof h);
for(int i = ;i <= n;i++)
{
dt = ;
for(int j = m;j >= ;j--)
{
sort(a + ,a + dt + ,cmp);
for(int k = ;k <= dt;k++)b[k] = b[k - ] + a[k],g[i][j][k] = b[k];
a[++dt] = s[i][j];
}
}
for(int j = ;j <= m;j++)
{
dt = ;
for(int i = n;i >= ;i--)
{
sort(a + ,a + dt + ,cmp);
for(int k = ;k <= dt;k++)b[k] = b[k - ] + a[k],h[i][j][k] = b[k];
a[++dt] = s[i][j];
}
}
memset(f,0x80,sizeof f);
f[][][][] = s[][];
f[][][][] = ;
}
int main()
{
int Case;scanf("%d",&Case);
while(Case--)
{
scanf("%d %d %d",&n,&m,&K);
for(int i = ;i <= n;i++)
for(int j = ;j <= m;j++)
scanf("%d",&s[i][j]);
init();
for(int i = ;i <= n;i++)
for(int j = ;j <= m;j++)
for(int k = ;k <= K;k++)
for(int l = ;l <= K;l++)
{
for(int t = ;t <= min(K - l,m - j);t++)
f[i + ][j][k][l + t] = max(f[i + ][j][k][l + t],f[i][j][k][l] + s[i + ][j] + g[i][j][t]),
f[i + ][j][k + ][l + t] = max(f[i + ][j][k + ][l + t],f[i][j][k][l] + g[i][j][t]);
for(int t = ;t <= min(K - l,n - i);t++)
f[i][j + ][k][l + t] = max(f[i][j + ][k][l + t],f[i][j][k][l] + s[i][j + ] + h[i][j][t]),
f[i][j + ][k + ][l + t] = max(f[i][j + ][k + ][l + t],f[i][j][k][l] + h[i][j][t]);
}
int ans = ;
for(int i = ;i <= K;i++)ans = max(ans,f[n][m][i][i]);
printf("%d\n",ans);
}
}
[Bzoj5359][Lydsy1805月赛]寻宝游戏(dp)的更多相关文章
- BZOJ_5359_[Lydsy1805月赛]寻宝游戏_DP
BZOJ5359_[Lydsy1805月赛]寻宝游戏_DP Description begin.lydsy.com/JudgeOnline/upload/201805.pdf 我们需要找到一条权值最大 ...
- BZOJ4881: [Lydsy1705月赛]线段游戏(二分图)
4881: [Lydsy1705月赛]线段游戏 Time Limit: 3 Sec Memory Limit: 256 MBSubmit: 359 Solved: 205[Submit][Stat ...
- [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\),那么无 ...
随机推荐
- Linux学习-延伸正则表达式
grep 默认仅支持基础正则表达式,如果要使用延伸型正则 表达式,你可以使用 grep -E , 不过更建议直接使用 egrep !直接区分指令比较好记忆!其 实 egrep 与 grep -E 是类 ...
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类(转)
http://www.cnblogs.com/fly1988happy/archive/2012/09/25/2701237.html 1. 多态 在面向对象语言中,接口的多种不同实现方式即为多态.多 ...
- python中子进程不支持input()函数输入
错误的源代码: import socketimport threadingimport multiprocessing# 创建socketserve_socket = socket.socket(so ...
- SVR回归
1.python支持向量机回归svr预测 https://blog.csdn.net/u012581541/article/details/51181041 https://www.cnblogs.c ...
- Scala学习-02-方法
算数和操作符重载 所有的操作符都是方法. a + b 是一种缩写形式 : a .+ b “+”是方法名(操作符重载) ++和—— Scala中并没有“++”和“——”.需要使用“+=”和“-=” ...
- seleniumIDE使用
1.selenium IDE使用:适用于火狐浏览器 2.界面按钮包括录制(右上角的红点),运行脚本(中上页的绿色三角,包括依次运行和单个运行的2个运行按钮) 3.导出文件为.java,在文件选项中
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- 使mysql的表内容可以输入中文内容
修改数据库的字符集mysql>use mydb mysql>alter database mydb character set utf8;
- Leetcode 477.汉明距离总和
汉明距离总和 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量. 计算一个数组中,任意两个数之间汉明距离的总和. 示例: 输入: 4, 14, 2 输出: 6 解释: 在二进制表示中, ...
- 关于pymongo的一些说明
问题 一: 在pymongo中使用find是得到1个游标对象的,如果你想实现MongoDB shell中find操作,例如: > db.test.find() { "_id" ...