[CF1152F]Neko Rules the Catniverse(动态规划) 题面 CF 题解 我们先考虑一个需要扫一遍所有位置的做法. 那么状态一定是\(f[i]\)然后什么什么表示考虑到当前第\(i\)个位置的答案. 看看我们还需要记录什么,首先肯定要记录的是当前已经选了几个,所以多了一维\(j\). 然后考虑现在这个能不能选. 首先如果这个元素放在某个元素之前,后面一定是合法的,因为当前位置一定是全局的最大值,所以只需要考虑它可以放在谁之前就行了. 而限制是\(x\le y+m\),那…
题意 一条长为 \(n\) 的数轴,可以从任意整点 \(\in [1, n]\) 出发,假设当前在 \(x\) ,下一步能到达的点 \(y\) 需要满足,\(y\) 从未到过,且 \(1 \le y \le x + m\) ,问长恰好为 \(k\) 的合法路径条数. 数据范围 对于 \(F1\) 有 \(1 \le n \le 10^5, 1 \le k \le \min(n, 12), 1 \le m \le 4\) 对于 \(F2​\) 有 \(1 \le n \le 10^9​\) . 题…
题意 有nnn个点,每个点只能走到编号在[1,min(n+m,1)][1,min(n+m,1)][1,min(n+m,1)]范围内的点.求路径长度恰好为kkk的简单路径(一个点最多走一次)数. 1≤n≤109,1≤m≤4,1≤k≤min(n,12)1\le n\le 10^9,1\le m\le 4,1\le k\le min(n,12)1≤n≤109,1≤m≤4,1≤k≤min(n,12) 分析 直接考虑走路径的话不能判有没有走过,然后就把路径转化为一个序列,每次往里面插入新的点(神了).因为…
题目链接:http://codeforces.com/problemset/problem/1152/F2 题目大意 见http://codeforces.com/problemset/problem/1152/F1,此题 n 最大能到 109. 分析 在 F1 的基础上,我们发现 dp[i + 1] 数组的每个值均可以通过 dp[i] 数组的有限几个数求得,而 dp[i + 2] 数组的每个值也均可以通过 dp[i + 1] 数组相同位置的有限几个数求得,于是我们可以考虑用矩阵快速幂来求 dp…
题目链接:http://codeforces.com/problemset/problem/1152/F1 题目大意 有 n 个星球,给定限制 m,从 x 星球走到 y 星球的条件是,$1 \leq y \leq x + m$,且 y 不能被访问过. 求游玩其中 k 个星球有多少种不同的方案? 分析 一开始我的想法是二维 dp,dp[i][j] 表示前 i 个星球,访问其中 j 个,一共的方案种数,然后在遍历到第 i + 1 个星球的时候,很明显有访问和不访问两种操作,不访问好算,直接赋值即可,…
题意:有 nnn 个物品,每个物品有不同的价值,物品按顺序分给两个人,有一块令牌,每回合拥有令牌的人拥有物品的分配权,但是该回合未获得物品的那个人会在下回合获得令牌,开始令牌在Bob手里,两个人都采取最优的策略,问最后各能获得的最大价值是多少. 我们设状态 dp[i]dp[i]dp[i] 为轮到第 iii 个物品时拥有令牌所能获得的最大值. 如果正着进行求解会有些困难,我们不妨考虑逆着求解: 1.取当前的价值,那说明在上一回合中是不能有令牌的,即 dp[i]=sum[i+1]−dp[i+1]+v…
http://acm.hdu.edu.cn/showproblem.php?pid=1087 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.QHand In HandOnline Acmers Forum |DiscussStatistical Charts Problem ArchiveRealtime Judge StatusAuthors Ranklist       C/C…
Cow Bowling DescriptionThe cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:          7        3   8      8   1   0    2   7 …
描述 http://poj.org/problem?id=3176 给出一个三角形,每个点可以走到它下面两个点,将所有经过的点的值加起来,问最大的和是多少. Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16826   Accepted: 11220 Description The cows don't use actual bowling balls when they go bowling.…
我们在解决一些线性区间上的最优化问题的时候,往往也能够利用到动态规划的思想,这种问题可以叫做线性dp.在这篇文章中,我们将讨论有关线性dp的一些问题. 在有关线性dp问题中,有着几个比较经典而基础的模型,例如最长上升子序列(LIS).最长公共子序列(LCS).最大子序列和等,那么首先我们从这几个经典的问题出发开始对线性dp的探索. 首先我们来看最长上升子序列问题. 这个问题基于这样一个背景,对于含有n个元素的集合S = {a1.a2.a3……an},对于S的一个子序列S‘ = {ai,aj,ak…