Description 有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i]。有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[i]个洗车店,且会选择这些店中最便宜的一个进行一次消费。但是如果这个最便宜的价格大于c[i],那么这个人就不洗车了。请给每家店指定一个价格,使得所有人花 ...
分类:
其他好文 时间:
2016-04-20 19:47:16
阅读次数:
167
因为上午没有准备够题目,结果发现写完这道题没题可写了QAQ 又因为这道题范围是100w,我写了发线段树,以为要T,上午就花了一个小时拼命卡常数 结果下午一交居然过了QAQ 我们考虑枚举L,求最大R使得[L,R]是对于当前L最大权值的区间 考虑每个点的影响 如果从L向右他是第一个,那么他会对后面产生a ...
分类:
其他好文 时间:
2016-04-09 17:00:06
阅读次数:
164
就按时间顺序写吧 完成度:8/10 3.30 bzoj4385 首先一定是删去连续d个数,然后枚举终点,起点显然有单调性,用单调队列乱搞搞就可以啦 bzoj4378 首先才结论:可行当且仅当把所有大于s的数全变成s然后看所有的数的和大于等于c*s,然后两个树状数组分别维护<=s的和及个数即可,注意需 ...
分类:
其他好文 时间:
2016-04-04 18:11:40
阅读次数:
218
枚举左区间线段树维护最大值#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long lon...
分类:
其他好文 时间:
2016-03-23 22:27:16
阅读次数:
234
将每个点拆成三个点,并将转移转化为矩阵乘法,然后倍增即可求出第$k$短路的长度,注意对爆long long情况的处理。 时间复杂度$O(n^3\log k)$。
分类:
其他好文 时间:
2016-03-13 06:21:24
阅读次数:
140
将$c$离散化,设: $f[i][j][k]$为区间$[i,j]$最小值为$k$的最大收益。 $g[i][j][k]$为$\max(g[i][j][k..m])$。 $h[i][j]$为对于当前DP区间,经过$i$点的,费用限制$\geq j$的人数。 然后直接DP即可,时间复杂度$O(n^3m)$
分类:
其他好文 时间:
2016-03-13 06:19:40
阅读次数:
207
对于每种颜色,可以发现可以切的位置被分割成了若干段独立的区域。 给每个区域一个编号,将$m$种颜色的情况当成字符串来看,如果两个切口的字符串完全匹配,那么可以在这里切两刀。 可以构造hash函数,通过差分前缀和做到$O(n)$修改。 然后对于每一种相同的hash值,将切口按位置从小到大排序,通过组合
分类:
其他好文 时间:
2016-03-13 06:18:31
阅读次数:
248
设$a$到$b$的边权为$c$的有向边的含义为$b\geq a+c$,则可以根据题意构造出一张有向图。 设$f[x]$为$x$点可行的最小值,$a[x]$为$x$位置已知的值,则$f[x]=\max(f[j]+w(j,i),a[x])$,其中$j$有边连向$i$。 通过拓扑排序+DP可以在$O(n)
分类:
其他好文 时间:
2016-03-13 06:18:27
阅读次数:
244
两遍树形DP求出每个点开始往上往下走的前3长路以及每个点上下部分的直径。 枚举每条边断开,设两边直径分别为$A,B$,则: 对于第一问,连接两边直径的中点可得直径为$\max(A,B,\lfloor\frac{A+1}{2}\rfloor+\lfloor\frac{B+1}{2}\rfloor+1)
分类:
其他好文 时间:
2016-03-13 06:17:00
阅读次数:
202
对于每个询问,设不小于$s$的个数为$cnt$,小于$s$的和为$sum$。 那么如果可以进行$s$轮,当且仅当$sum\geq (c-cnt)\times s$。 权值线段树维护,时间复杂度$O(m\log m)$。 证明: 如果$cnt\geq c$,那么显然可以每次取$c$个。 否则如果$su
分类:
其他好文 时间:
2016-03-13 06:16:30
阅读次数:
164