Solution 第一问二分模板题,利用第一问答案做第二问 $O(n^2m)$ 的 dp 是显然的,考虑用前缀和优化,用双指针预处理出转移位置的边界,于是每次转移复杂度 $O(1)$,总体复杂度 $O(nm)$ ...
分类:
其他好文 时间:
2020-03-01 14:40:19
阅读次数:
64
第一个问题可以用贪心+二分解决第二个问题用f[i][j]表示i次分割后分割到j且满足条件的方案数,$f[i][j]=\sum_{k<j且sum[j]-sum[k]<=ans}f[i-1][k]$优化时间:前缀和优化,二分要先预处理出来(也可以用优先队列)优化空间:发现f并没有什么用处,只需要记录前缀 ...
分类:
其他好文 时间:
2019-10-29 10:05:51
阅读次数:
79
DP常用优化 一.前缀和优化 当遇到类似:$f[i] = \sum_{j = k}^{i} g[j]$的转移时,可以通过预处理出$g[i]$的前缀和$s[i]$,将$O(n)$的求和转换为$O(1)?$的操作。 "[HAOI2009]逆序对数列" "[HAOI2008]木棍分割" 二分答案+dp " ...
分类:
其他好文 时间:
2019-01-20 18:00:47
阅读次数:
379
题解 第一问应该一眼就可以看出二分+贪心 问题是第二问。 可以想到$dp$ $f[i][j]$表示前i个木棍,分成j份, 每一份都不超过ans1的方案数 $f_{i,j} =\sum_{k=x}^{i 1} f_{k,j 1}$ $( 第z位到第i位可以作为一段, x为最小的z )$ 显然$x$满足 ...
分类:
其他好文 时间:
2018-12-15 17:17:58
阅读次数:
146
Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n 1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。。。 ...
分类:
其他好文 时间:
2018-10-19 00:01:27
阅读次数:
143
"传送门" 第一问是一道经典的二分,二分答案$ans$,然后从前往后扫,判断要分成几段救星了 第二问设$f_{i,j}$表示前$i$个数分成$j$段,每段之和不超过第一问答案的方案,转移就是从$f_{k,j 1}(k define LL long long define il inline defi ...
分类:
其他好文 时间:
2018-10-17 22:13:37
阅读次数:
128
Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n 1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。。。 ...
分类:
其他好文 时间:
2018-09-01 00:44:11
阅读次数:
151
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1044 咳咳...终于A了... 居然没注意到正着找pos是n方会TLE...所以要倒着找pos; 二分还写错了,改了半天... 小心前缀和取模后相减变成负数!!!!!!!!! 代码如下: ...
分类:
其他好文 时间:
2018-06-06 22:02:09
阅读次数:
135
有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。 题解:先二分求最大长度的最小 ...
分类:
其他好文 时间:
2018-05-23 23:32:57
阅读次数:
194
题解: 第一问二分答案 第二问用f[i][j]表示前i块分成j段的方案数 但是MLE 于是改变枚举顺序 先枚举j,然后i这一层用滚动数组优化 f[i][j]=sigma f[k][j-1](sum[i]-sum[k]<=ans) 决策是一段区间,而且左端点单调,搞个指针维护最左的决策点 ...
分类:
其他好文 时间:
2018-03-04 10:32:15
阅读次数:
112