牛客小白月赛1 G あなたの蛙は旅⽴っています【图存储】【DP】
题目链接:https://www.nowcoder.com/acm/contest/85/G
思路:
DP 空间可以优化成一维的, 用一维数组的 0 号单元保存左斜对角的值即可。
存图这里真不好理解 = =
AC 代码:
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <vector> using namespace std; #define max3(x, y, z) max(max((x), (y)), (z))
#define min3(x, y, z) min(mix((x), (y)), (z))
#define pb push_back
#define ppb pop_back
#define mk make_pair #define debug_l(a) cout << #a << " " << (a) << endl
#define debug_b(a) cout << #a << " " << (a) << " "
#define testin(filename) freopen((filename) ,"r",stdin)
#define testout(filename) freopen((filename) ,"w",stdout) typedef long long ll;
typedef unsigned long long ull; const double PI = 3.14159265358979323846264338327;
const double E = exp();
const double eps = 1e-; const int INF = 0x3f3f3f3f;
const int NINF = 0xc0c0c0c0;
const int maxn = 3e3 + ;
const int MOD = 1e9 + ; int Map[maxn][maxn], Cur[maxn], dp[maxn][maxn];
int main()
{
//testin("data1.in");
int n;
scanf("%d", &n);
memset(Map, NINF, sizeof(Map));
memset(Cur, , sizeof(Cur));
memset(dp, , sizeof(dp));
int vis = + ( * (n - ));
int cur = * n - ;
int i, j; for (int i = ; i < vis - n; i++) {
if (i <= i % n)
Cur[i] = i % n + ;
else {
if (n & )
Cur[i] = (i & ) ? n - : n;
else
Cur[i] = (i & ) ? n : n - ;
}
}
for (int i = vis - ; i >= vis - n; i--)
Cur[i] = vis - i; vector <int> v[vis];
int temp;
for (i = ; i < vis; i++)
{
for (j = ; j < Cur[i]; j++)
{
scanf("%d", &temp);
v[i].push_back(temp);
}
} int len = cur / + ;
int flag = ;
for (i = , j = n; i < len; i++, j++)
{
for (int l = , k = flag; l < j; l++, k++)
{
Map[i][l] = v[k][v[k].size() - ];
v[k].pop_back();
if (v[k].size() == )
flag++;
}
} for (j -= ; i < cur; i++, j--)
{
for (int l = (cur - j), k = flag; l < cur; l++, k++)
{
Map[i][l] = v[k][v[k].size() - ];
v[k].pop_back();
if (v[k].size() == )
flag++;
}
} dp[][] = Map[][];
for (int i = ; i < cur; i++) {
dp[][i] = Map[][i] + dp[][i - ];
dp[i][] = Map[i][] + dp[i - ][];
} for (int i = ; i < cur; i++)
for (int j = ; j < cur; j++)
dp[i][j] = Map[i][j] + max3(dp[i - ][j - ], dp[i - ][j], dp[i][j - ]); cout << dp[cur - ][cur - ] << endl;
return ;
}
参考原文:https://blog.csdn.net/Dup4plz/article/details/79639771
牛客小白月赛1 G あなたの蛙は旅⽴っています【图存储】【DP】的更多相关文章
- 牛客小白月赛1 G あなたの蛙は旅⽴っています【DP】
题目链接 https://www.nowcoder.com/acm/contest/85/G 思路 按照题解上的方式 存取数据 然后DP一下 就可以了 AC代码 #include <cstdio ...
- 牛客小白月赛2 G 文 【模拟】
链接:https://www.nowcoder.com/acm/contest/86/G来源:牛客网 题目描述 Sεlιнα(Selina) 开始了新一轮的男友海选.她要求她的男友要德智体美劳样样都全 ...
- 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂
I.あなたの蛙が帰っています 链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网 这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...
- 牛客小白月赛6 G 指纹锁 set的自动排序 模板
链接:https://www.nowcoder.com/acm/contest/136/G来源:牛客网 题目描述 HA实验有一套非常严密的安全保障体系,在HA实验基地的大门,有一个指纹锁. ...
- 牛客小白月赛1 I あなたの蛙が帰っています 【卡特兰数】
链接:https://www.nowcoder.com/acm/contest/85/I题目描述 あなたの蛙が帰っています! 蛙蛙完成了一趟旅行,回家啦!但它还是没有去它心中非常想去的几个地方.总共 ...
- 牛客小白月赛5 G 异或(xor) 【找规律】
题目链接: https://www.nowcoder.com/acm/contest/135/g 题目描述 从前,Apojacsleam家的水族箱里,养了一群热带鱼. 在这几条热带鱼里,Apojacs ...
- 牛客网 牛客小白月赛2 G.文
G.文 链接:https://www.nowcoder.com/acm/contest/86/G 这个题wa了一发,有点智障,浮点数,式子里面要*1.0,忘了,然后wa了,改了就过了(脑子有坑) 代码 ...
- 牛客小白月赛14 -G (筛法)
题目链接:https://ac.nowcoder.com/acm/contest/879/G 题意:给定A1和A数组公式: 以及B数组: 求 思路:利用筛法更新b数组,最后求异或和即可. AC代码: ...
- 牛客小白月赛13 G(双向搜索)
AC通道 两边同步搜,一步里面A走一次B走两次,遇到对方走过的地方就得到了答案. #include <bits/stdc++.h> using namespace std; const i ...
随机推荐
- inode与block
1. inode 是索引节点,在每个Linux存储设备或者存储设备的分区被格式化为ext4文件系统,一般生成两个部分:第一部分为inode,第二部分为block inode:存放的是 ...
- netstat命令怎么查看端口是否占用
转自:http://www.ahlinux.com/start/cmd/527.html netstat命令是一个监控TCP IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接 ...
- JS——操作元素属性
属性的操作包括:读和写 方法: 1)”.“操作 2)”[ ]“操作 eg: var oDiv = document.getElementById('div1'); var attr = 'color' ...
- 转 nagios监控oracle运行状况
https://blog.csdn.net/heizistudio/article/details/8638488 nrpe安装脚本 nagios-plugins-1.4.13.tar.gznrpe- ...
- ACdream 1236 Burning Bridges 割边 + 去重边
题目就是求一副图的割边,然后对于那些有重复的边的,不能算做割边. 思路就是每次加入一条边的时候,判断这条边是否存在过,存在过的话,就把那条边设为inf,表示不能作为割边.于是有了这样的代码 #incl ...
- 配置Spring发送邮件
推荐查看原博客 转载自:配置Spring发送邮件 Spring Email抽象的核心是MailSender接口.顾名思义,MailSender的实现能够通过连接Email服务器实现邮件发 ...
- &&运算符和||运算符的优先级问题 专题
public class SyntaxTest { @Test public void test() { System.out.println(true || true && fals ...
- iOS开发ReactiveCocoa学习笔记(六)
RAC操作方法三. demo地址:https://github.com/SummerHH/ReactiveCocoa.git doNext deliverOn timeout interval del ...
- 映射部署tomcat
近期遇到问题总结[映射部署]2017年10月03日 10:16:54 守望dfdfdf 阅读数:108更多个人分类: Java知识编辑版权声明:本文为博主原创文章,转载请注明文章链接. https:/ ...
- 【Python】python2 html safe string
import cgi s = '<>&' s += u'哈哈' print type(s) print s r = cgi.escape(s) print type(r) prin ...