[atARC066F]Contest with Drinks Hard】的更多相关文章

先不考虑修改,那么很明显即对于每一个极长的的区间,若其长度为$l$,有${l+1\choose 2}$的贡献 考虑dp去做,即$f_{i}$表示前$i$个数最大的答案,则$$f_{i}=\max(\max_{0\le j<i}f_{j}+{i-j+1\choose 2}-(sum_{i}-sum_{j}),f_{i-1})$$(其中$sum_{i}$为$a_{i}$的前缀和,即$sum_{i}=sum_{i-1}+a_{i}$) 另外,转移中允许$j$上被选择,但这显然不如直接从上一个区间左端点…
/* Problem Statement Joisino is about to compete in the final round of a certain programming competition. In this contest, there are N problems, numbered 1 through N. Joisino knows that it takes her Ti seconds to solve problem i(1≦i≦N). Also, there a…
题目大意: 有一些物品,每个买了有代价. 如果存在一个极大区间[l,r]内的物品都被买了,这个区间长度为k,可以获得的收益是k*(k+1)/2. 现在若干次询问,每次问假如修改了某个物品的价格,最大收益是多少? 题解: 一般来说这种题目可以考虑线段树分治 但是这里并不可行 另外一种解决区间限制的问题(就是一定要选某一段区间的时候) 我们会采用分治来做 其实分治的作用就在于对一段东西进行了预处理 这道题 决策单调性,两种斜率优化都是可以的 然后就是分治 我们进行到l,r时,我们确定所有左端点<=m…
题意: 你现在有n个题目可以做,第i个题目需要的时间为t[i],你要选择其中的若干题目去做.不妨令choose[i]表示第i个题目做不做.定义cost=∑(i<=n)∑(i<=j<=n)(∏(i<=k<=j)choose[k])−∑(i<=n)choose[i]×t[i]有q个询问,每个询问给出两个数p,x表示询问假设把t[p]修改成x,当你任意指定choose[]的值时,最大的cost是多少. 首先不考虑询问,dp一遍,f[i]表示前i个题目获得的最大收益,f[i]=…
题解 我写的斜率维护,放弃了我最擅长的叉积维护,然后发现叉积维护也不会爆long long哦-- 一写斜率维护我的代码就会莫名变长而且难写--行吧 我们看这题 推了推式子,发现这是个斜率的式子,但是斜率单增还要求最大值?啥我又得二分凸包--好烦-- 然后我们求一个pre[x]表示[1,x]的最大分数,和一个suf[x]表示[x,N]里的最大分数 然后对于一个点枚举一个包含它的区间,计算取值 显然超时 那就放在分治上,左端点在左区间,右端点在右区间,把最大值处理成前后缀max,两边都是斜率优化 挺…
传送门 题目大意 有一个长为$N$的序列$A$,你要构造一个长为$N$的$01$序列使得$01$序列全部由$1$组成的子串个数$-$两个序列的对应位置两两乘积之和最大,每次独立的询问给定$pos,x$,求当$A_{pos}=x$时最大的答案,每次询问后将$A$复原. 题解 考虑不加入询问单纯地求原序列最大价值就变成了经典的斜率优化. 设$S$为序列$A$的前缀和,$F_i$表示对于前$i$个位置其中第$i$个不选的最大价值,假设枚举$j$表示上一个不选的位置是$j$. 那么$F_i=F_j-(S…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定序列 T1, T2, ... TN,你可以从中选择一些 Ti,可以选择 0 个(即不选). 定义你选择的权值 = (满足 T[L...R] 都被选择的区间 [L, R] 的数量)-(你选择的 Ti 之和),你希望这个权值尽量大. 现在有 M 次询问,每次询问假如将 T[Pi] 修改成 Xi,你所能选出的最大权值. Constraints 1 <= N, M…
先考虑不修改怎么做,可以令 \(dp_i\) 表示前 \(i\) 个题能获得的最大得分.那么我们有转移: \[dp_i = \min\{dp_{i - 1}, dp_{j} + \frac{(i - j + 1)(i - j)}{2} - (S_i - S_j)\}(0 \le j < i) \] 很显然后面那部分是一个斜优的形式,我们化一下柿子可以得到: \[dp_j + \frac{j(j - 1)}{2} + S_j = ij + dp_i + S_i - \frac{i(i + 1)}{…
A - Addition and Subtraction Easy Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Joisino wants to evaluate the formula "A op B". Here, A and B are integers, and the binary operator op is either + or -. Your task is…
ARC066 C - Lining Up 判断是否合法即可,合法是\(2^{\lfloor \frac{N}{2}\rfloor}\) 不合法就是0 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter…