题目:传送门 题意:问存在多少 1 ~ n 的排列满足任意相邻的两个数互质,输出答案取余 mod。 1 <= n <= 28, 1 <= mod <= 30000 思路:很容易想到状压DP, dp[ i ][ j ]其中 i 是最后一个数要填的数,j 是当前使用过的数的状态,每一个二进制位对应一个数 ...
分类:
其他好文 时间:
2020-03-03 11:04:13
阅读次数:
63
首先我们发现,因为可以在任意地方翻转,所以最后的答案就是一个合法子串和他的补集的子集中个数和最大的那个 因此我们先枚举每一个合法状态,记录他的合法个数有几个。 然后我们从头枚举每一个状态,计算状态的子集中的最大个数。 这样我们最后只要枚举状态和补集,就能计算出真正的答案了 #include<iost ...
分类:
其他好文 时间:
2020-03-03 10:55:02
阅读次数:
72
题目描述 题解 镇♂男则反 容斥下界,上界开到大概505位,数位dp最终的和V 设边界(要大于边界)之和为S,那么答案为C(V S 1,n 1) 根据范德蒙恒等式,C(n+m,k)=∑C(n,i)\ C(m,k i) 如果nm都是正数很好证明,把n+m分成n和m两部分,枚举n部分选择个数组合一下 这 ...
分类:
其他好文 时间:
2020-03-03 10:37:35
阅读次数:
71
区间dp:在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解进而得出整个大区间上最优解的dp算法。 (此句抄袭这里:https://blog.csdn.net/qq_40772692/article/details/80183248) 例题:石子合并 【问题描述】 将n(1≤ ...
分类:
其他好文 时间:
2020-03-03 00:43:02
阅读次数:
82
有一个长度为 $n$ 的数字串,定义 $f(S)$ 为将 $S$ 拆分为若干个 $[1,m]$ 的数的和的方案数。现在,你可以将这个数字串分割为若干个数字(允许前导 $0$)并相加,求所有方案的 $f$ 的和。 $n \leq 500, m \leq 5$ Solution 设 $f[i]$ 为 $ ...
分类:
其他好文 时间:
2020-03-02 23:24:14
阅读次数:
114
"Link" 题意: 求最大区间和所在区间是不是 $1 \sim n$ 思路: 设 $dp[i]$ 是以 $i$ 为右端的最大区间和 $dp[i]=max(dp[i 1]+a[i],a[i])$ 代码: ...
分类:
其他好文 时间:
2020-03-02 22:50:18
阅读次数:
84
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 示例 2: 动态规划 这里可以用动态规划 Dynamic Programming 来解,维护一个一维数组 dp,其中 dp[i] 表示达到i位置时剩余 ...
分类:
其他好文 时间:
2020-03-02 12:50:20
阅读次数:
48
给 $n$ 个人安排座位,每个人手上有一个编号 $a_i$。从第一个人开始依次进场,每个人进场后,会从 $a_i$ 往后找到第一个空着的座位就做,如果没找到则这个方案不合法。现在有 $m$ 个人的座位已经确定(不同人的编号可以相同),求有多少种合法的安排方案。 $T\leq 10, n \leq 3 ...
分类:
其他好文 时间:
2020-03-01 21:45:31
阅读次数:
50
Solution 第一问二分模板题,利用第一问答案做第二问 $O(n^2m)$ 的 dp 是显然的,考虑用前缀和优化,用双指针预处理出转移位置的边界,于是每次转移复杂度 $O(1)$,总体复杂度 $O(nm)$ ...
分类:
其他好文 时间:
2020-03-01 14:40:19
阅读次数:
64
题意:有n个学生 要求组成k个小组 每个小组中两两差值不得超过5 可以有学生不被编入组中 求最多可以有多少个学生被编入组中 n,k<=1e5 题解: 考虑dp[i][j],i为前i个学生,j为分了几组的最大人数,不选第i个人,dp[i][j]=dp[i-1][j], 选第i个人,贪心的选择距离a[i ...
分类:
其他好文 时间:
2020-03-01 12:15:41
阅读次数:
68