题意: 选出一条链 $[u \to v]$,每个点有个权值,然后求 $\max{\sum s_i}$,$s_i$ 为路径前缀和。 首先路径问题先想到点分治,然后考虑如何链上计算这个贡献,如果当前重心为 $x$,我们选出了两个点 $u,v$ ,非常显然 $u,v$ 都是叶子结点。 ~~(证明略)~~ ...
分类:
其他好文 时间:
2020-05-06 21:40:48
阅读次数:
91
直接求不好求,我们考虑 $min max$ 容斥:$\displaystyle E(max(S))=\sum_{T \subseteq S}( 1)^{|T|+1}E(min(T))$ 其中 $S$ 为到达相应的花费时间的集合, $max(S)$ 为到过所有点的时间, $min(S)$ 为到过一个点 ...
分类:
其他好文 时间:
2020-04-02 19:46:54
阅读次数:
55
用二位数组dp[i][j]记录组数为i,前j个数字的最大子段和。 转移方程: dp[i][j],考虑第j个数,第j个数可以并到前面那一组,此时dp[i][j]=dp[i][j-1]+arr[j],第j个数也可以是作为新的一组,那么dp[i][j]=max(dp[i-1][k])(i-1<=k<=j- ...
分类:
其他好文 时间:
2020-03-04 12:59:21
阅读次数:
73
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in th ...
分类:
其他好文 时间:
2020-02-16 20:25:53
阅读次数:
53
有两种操作,一是给区间内所有的数开根号,二是区间求和。 线段树单点更新,区间求和的模板~ #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int maxn=1e6+14; struct n ...
分类:
其他好文 时间:
2020-02-14 20:23:34
阅读次数:
63
时间复杂度O(n) 空间复杂度O(1) 1 #include <cstdio> 2 int main() { 3 int T;scanf("%d",&T); 4 for(int t=1,n,a,l,r,s,L,R,S;t<=T;t++) { 5 scanf("%d",&n),l=L=R=1; 6 f ...
分类:
编程语言 时间:
2020-02-08 15:32:38
阅读次数:
52
/* dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) dp[i][j-1]+a[j]表示的是前j-1分成i组,第j个必须放在前一组里面。 max( dp[i-1][k] ) + a[j] )表示的前(0<k<j)分成i-1组,第j ...
分类:
其他好文 时间:
2020-01-28 15:40:55
阅读次数:
46
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> ...
分类:
其他好文 时间:
2020-01-21 16:33:32
阅读次数:
72
"题目链接" 题目大意: 我们有一个环状的数列,内有n个元素,现在其中找一长度不超过k的连续子序列,使值最大. 分析: 原数组断环为链: $A_1$..$A_n$ = $A_1$.. $A_n A_{n+1}$..$A_{n+k}$ 考虑一段连续的子序列的值就是前缀和相减的形式 我们得到前缀和数组 ...
分类:
其他好文 时间:
2020-01-21 16:30:12
阅读次数:
55
Address "Luogu 4707" Solution 前置技能:记 $max_k(S)$ 表示 $S$ 中第 $k$ 大的数,$min(S)$ 表示 $S$ 中最小的数,那么有:$$max_k(S)=\sum_{T∈S,T\neq\emptyset}\binom{|T| 1}{k 1}( 1) ...
分类:
其他好文 时间:
2020-01-16 00:42:13
阅读次数:
93