DP Training(Updating)
感觉前面做了那么多$dp$全是自己想的还是太少啊……
好像在LZT的博客上看到了不错的资源?赶紧开坑,以一句话题解为主
Codeforces 419B
第一题就开始盗图
由于只有一个交点,手玩一下发现两人的路径可以分为四块区域,且只有两种情况:

预处理四个方向的最长距离,枚举相交点即可
FZU 2234:
将往返路径看成从起点出发的两条路径
$dp[Xa][Xb][STEP]$用三维记录两个当前位置,转移时注意两点是否重复
Tip:建状态时注意是否有能合并的维度!
POJ 1050:
一开始想成最大全1子矩阵了……
这样权值和最大子矩阵好像也只能$O(n^3)$做:
$O(n^2)$枚举左右端点,再转换成1维$O(n)$算一遍从上到下的最长子序列
HDU 1024:
最大$m$字段和我可能之前学的是假的转移……
直接设$dp[i][j]$表示取前$i$个且第$i$个必选的最大$j$字段和,不需要再加一维表示是否选$i$
转移:$dp[i][j]=max(dp[i-1][j],dp[k][j-1])+a[i]$,滚动数组+记录前一层到$i-1$的最大值
Tip:
1、分清哪一层滚动来确定嵌套顺序
2、第二层(i)不能每次从1开始枚举,要从$j$开始!!!
边界尽量卡死防止出错
加强版见:https://www.cnblogs.com/newera/p/9534648.html
HDU 1257:
可以直接贪心判断是否需要增加系统并维护每个系统的末尾值
不过这其实是一道$Dilworth$定理相关的题
借此机会又好好复习了下集合论里的一些概念和证明:传送门
这题将偏序关系设为$i<j$且$a[i]<a[j]$,那么每个系统就是一条反链
最长链长度=最小反链覆盖,因此直接求LIS即可
HDU 1025:
按一边排序后直接LIS,注意输出里的$road$和$roads$……(还是要好好看样例!)
HDU 5282:
这里用$cnt[i][j]$计数时按是否选$a_i$分类:
(注意分类转移的设置!)
1、不选$a_i$:$f[i][j]=f[i-1][j]$时加上$cnt[i-1][j]$
2、选$a_i$:预处理出$b_j$前第一个与$a_i$相同的位置$pre$
$f[i-1][pre-1]+1=f[i][j]$时加上$cnt[i-1][pre-1]$
FZU 2214:
尽量用范围小的量做状态!
POJ 2184:
要求在两个量和都大于0的情况下求最大的和
这样必定不能用和来建状态,而应该以其中一个量作状态用值存另一个量的最大值
UVa 624:
可以把$weight,value$都看成$w[i]$直接做背包
也可以用$vis[i][j]$表示能否凑出$j$
HDU 2639:
求第$K$大背包
转移的项与原来相同,只是对于每个原来状态都记录下前$K$大的值
每次转移时将$2*K$个数$O(n)$合并求出前$K$大即可
HDU 5534:
只要$\sum d_i=2*(n-1)$,那么就存在这样的一棵树
如果将每个点作为第一维那么转移是$O(n)$的,思考如何优化
发现将$d_i$相同的点合并看成一种物品再进行一些处理就能跑完全背包了!
Tips:
1、为了消除物品总数必须为$n$的限制,先给每个点分配1的度数,只考虑增量
这样就变成$W=n-2,num=n-2,w[i]'=w[i]-w[1]$的无限制完全背包了
2、注意这里要求总重量恰为$n-2$,而非至多,因此要把$dp$数组初始化为-INF$
DP Training(Updating)的更多相关文章
- DP Training(Updating)♪(^∇^*)
DP Training DP Training 01 https://vjudge.net/contest/220286 密码 nfls A 数塔(Easy) \(f[i][j]\) 表示当前选第 \ ...
- xtu DP Training C.炮兵阵地
炮兵阵地 Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 11856 ...
- xtu DP Training B. Collecting Bugs
B. Collecting Bugs Time Limit: 10000ms Memory Limit: 64000KB 64-bit integer IO format: %lld Jav ...
- (zhuan) 一些RL的文献(及笔记)
一些RL的文献(及笔记) copy from: https://zhuanlan.zhihu.com/p/25770890 Introductions Introduction to reinfor ...
- [C6] Andrew Ng - Convolutional Neural Networks
About this Course This course will teach you how to build convolutional neural networks and apply it ...
- 2017 Multi-University Training Contest - Team 9 1001&&HDU 6161 Big binary tree【树形dp+hash】
Big binary tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 2017 Multi-University Training Contest - Team 1 1003&&HDU 6035 Colorful Tree【树形dp】
Colorful Tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- Gym - 100676G Training Camp (状压dp)
G. Training Camp[ Color: Yellow ]Montaser is planning to train very hard for ACM JCPC 2015; he has p ...
- 2014 Super Training #9 E Destroy --树的直径+树形DP
原题: ZOJ 3684 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3684 题意: 给你一棵树,树的根是树的中心(到其 ...
随机推荐
- oracle07
1. 索引INDEX 1.1. 索引的概念特性和作用 概念: 简单的说,相当于一本书的目录.(数据库中的索引相当于字典的目录(索引)),它的作用就是提升查询效率. 特性: l 一种独立于表的模式(数 ...
- mogodb的安装与配置
下载:https://www.mongodb.com/https://www.mongodb.com/ 安装:一直next,中间选择custom,选择自己的安装路径,最后安装成功. 配置:打开安装好的 ...
- Git 创建仓库【转】
转自:http://www.runoob.com/git/git-create-repository.html Git 创建仓库 本章节我们将为大家介绍如何创建一个 Git 仓库. 你可以使用一个已经 ...
- 【2017-10-1】雅礼集训day1
今天的题是ysy的,ysy好呆萌啊. A: 就是把一个点的两个坐标看成差分一样的东西,以此作为区间端点,然后如果点有边->区间没有交. B: cf原题啊.....均摊分析,简单的那种. 线段树随 ...
- laravel 中provider的理解和使用
https://segmentfault.com/q/1010000004640866
- python网络编程--进程线程
一:什么是进程 一个程序执行时的实例被称为一个进程. 每个进程都提供执行程序所需的资源.一个进程有一个虚拟地址空间.可执行代码.对系统对象的开放句柄.一个安全上下文.一个独特的进程标识符.环境变量.一 ...
- collection.toArray(new String[0])中new String[0]的作用
new string[0]的作用 比如:String[] result = set.toArray(new String[0]); Collection的公有方法中,toArray()是比较重要的一个 ...
- Jmeter运行结果unicode编码乱码问题
一.web页面乱码 比如访问百度返回页面显示乱码,如下会有问号 如果想让他显示中文可以按以下操作: 1.打开jmter配置文件 bin/jmeter.properties 2.修改配置文件,查找“sa ...
- DEDECMS去除后门隐患和漏洞以及冗余代码的方法
链接:http://jingyan.baidu.com/article/4d58d541195bdb9dd4e9c029.html 工具/原料 织梦网站管理系统 sublime编辑器 方法/步骤 第一 ...
- HDU 4632 Palindrome subsequence(区间DP求回文子序列数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 题目大意:给你若干个字符串,回答每个字符串有多少个回文子序列(可以不连续的子串).解题思路: 设 ...