关闭
当前搜索:

[分块] Codeforces 436F Zepto Code Rush 2014 F. Banners

可以转化成区间加,询问ai×ia_i\times i的最大值 这个不好维护,分块,零散的加,直接重构整块,否则在块上打标记 同时我们在块上还要维护当前最大值所在的 ii 和 接下来至少要整块加多少次才能使得最大值变化 每次在块上打标记,当达到临近就重构更新最大值,注意这个最大值随着全局加肯定是单调右移的,那么重构复杂度也是对的#include #include...
阅读(106) 评论(0)

[最小生成树] Codeforces 632F Educational Codeforces Round 9 F. Magic Matrix & SRM 687 div1 AllGraphCuts

Magic Matrix把aa矩阵当成邻接矩阵,设bb为两点间路径最大值的最小值,那么ai,j≥bi,ja_{i,j}\ge b_{i,j},然后ai,j≤max(ai,k1,ak1,k2,⋯,akm,j)a_{i,j}\le \text{max}(a_{i,k_1},a_{k_1,k_2},\cdots,a_{k_m,j}),所以ai,j≤bi,ja_{i,j}\le b_{i,j} 那么a=b...
阅读(196) 评论(0)

[递推] Codeforces 660E Educational Codeforces Round 11 E. Different Subsets For All Tuples

对于一个确定串ss,求不同子序列的个数有经典dp fi,si=∑jfi−1,jf_{i,s_i}=\sum_j f_{i-1,j} fi,j=fi−1,j,j≠sif_{i,j}=f_{i-1,j},j\neq s_i 因为转移都是形式一样的我试着把所有串的fif_i都加起来,然后就发现FjF_j除了j=ϕj=\phi之外都是一样的,然后就记录两个量,然后就递推出来了#include...
阅读(215) 评论(2)

[期望] UOJ #214. 【UNR #1】合唱队形

首先考虑如果要完成指定 kk 个课程,那么期望应该是 Fk=∑k−1i=01k−iF_{k}=\sum_{i=0}^{k-1} {1\over k-i} 令 ftf_t 表示 tt 时刻之前 要求未被完成的概率 令 pS,tp_S,t 表示 tt 时刻之前 位置集合 SS 未被完成的概率 然后瘦腿一发 E======∑t=0∞ft∑t=0∞∑S(−1)|S|(1−pS,t)∑t=0∞−∑...
阅读(175) 评论(0)

[DP优化] POJ 1160 Post Office

另解:四边形不等式优化考虑这个最优解关于段数是凸的,那么我们不限制段数,而是给每段一个额外的权值,随着这个权值单调变化,最优解的段数也会单调变化,二分出最优解是 mm 段就好了 这个的本质是二分出那个凸函数在 mm 上的斜率然后这个dp是满足决策单调性的 复杂度O(nlog2n)O(n\log ^2n)#include #include #include<algo...
阅读(160) 评论(0)

[单调栈 线段树] Codeforces 407E Round #239 (Div. 1) E. k-d-sequence

首先肯定是一段模 dd 相同的数 然后枚举左端点 那么右端点应该满足条件 数字不重复出现且 maxvl,r−minvl,r≤r−l+kmaxv_{l,r}-minv_{l,r}\le r-l+k,这个最大最小值是除过 dd 的 也就是maxvl,r−minvl,r−r≤k−lmaxv_{l,r}-minv_{l,r}-r\le k-l 左端点边挪边用单调栈维护最大最小值 入栈出栈就线段树上区间...
阅读(126) 评论(0)

[递推 || 容斥 FFT] SRM 717 div1 DerangementsStrikeBack

首先像我这种无脑的人可以大力上fft fin!=∑j=0i(−1)j(ij)(n+i−j)!n!{f_i \over n!}=\sum_{j=0}^i (-1)^j {i\choose j} {(n+i-j)!\over n!} 然而考虑经典错排的递推公式 dn=(n−1)(dn−1+dn−2)d_n=(n-1)(d_{n-1}+d_{n-2}) 这个东西的递推式是 把第nn个和n−1n-1...
阅读(203) 评论(0)

[贪心 构造] SRM 717 div1 ScoresSequence

首先他保证图唯一确定,那么可以把图给构出来 类似这个题,按照出度从大到小排序,出度最大那个点怎么分配,类似无向图可图判定,应该是向出度小的点连,使得出度大的向他连,让出度大的出度减小// BEGIN CUT HERE #include #include // END CUT HERE #include #include...
阅读(122) 评论(0)

[最短路 主席树 Hash] 51Nod 算法马拉松26 E Travel

跟这个题一毛一样,那个题还高明一点,还会进位#include #include #include #include #include using namespace std; typedef unsigned int uint; typedef unsigned long long ull;inline char nc(...
阅读(179) 评论(0)

[FWT] 51Nod 算法马拉松26 A A国的贸易

相当于每次每个点会变成自己和与自己相差一个二进制位的数的和 直接FWT 快速幂#include #include #include using namespace std; typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; r...
阅读(234) 评论(0)

[通信题] JOI Open Contest 2017 Amusement Park

题目大意: 这是一道通信题 第一个程序 输入一张无向图的点和边 再给一个2^60以内的数 第一个程序要给每个点赋值0/1 第二个程序也会读入这张图 然后读入当前点编号以及当前点的值,其他点的值一律不知,每次可以调用一个函数走向一个相邻的点,并得知这个点的值,120步以内得出只有第一个程序知道的那个数VIEW PROBLEM - AMUSEMENT PARK (JOI17_AMUSEMENT_P...
阅读(214) 评论(0)

[几何 扫描线 最大子段和] JOI Open Contest 2017 Bulldozer

题目大意:给出平面上n个带权点,有正有负,求平面上两条平行直线之间的点权和最大是多少 VIEW PROBLEM - BULLDOZER (JOI17_BULLDOZER)直接枚举斜率,点按照距离排序后是一个最大子段和问题 然后考虑扫描线旋转斜率,两个点相对关系变化只会发生在斜率与两点连线平行的情况,那么两点位置swap一下,更一般的如果是一段都满足这个,那么这一段要reverse一下 就是把两...
阅读(159) 评论(0)

[最短路 Bfs 二维线段树] JOI Open Contest 2017 Golf

题目大意:给出平面上n个不相交的矩形障碍,以及起点和终点,要求从起点走到终点的折线段段数最少 VIEW PROBLEM - GOLF (JOI17_GOLF)首先最优解肯定可以只在矩形边所在的直线以及过起点终点平行坐标轴的直线上移动 先预处理出矩形边界能够左右上下延伸的最远距离,转化成一些线段,可以扫描线加线段树 然后就直接bfs,关键操作是找出所有跟当前线段相交的且没被走过的线段,可以把线段...
阅读(234) 评论(0)

[分块 随机Hash] Romanian IOI 2017 Selection #6 Jolteon

传送门问有多少个区间,出现过的数出现次数都是奇数 给每个数随机一个hash值 然后区间中所有数的xor和 和 所有pre<l≤i≤rpre< l \le i \le r的数的异或和 相同 那么就合法 枚举右端点,新增一个数会对一段造成影响 变成区间异或,区间是否存在一个数,分块维护#include #include #include...
阅读(252) 评论(0)

[线性基 树链剖分 线段树 || ST表 || 点分治] BZOJ 4568 [Scoi2016]幸运数字

这个东西链剖之后就是个裸的区间线性基,是可以暴力合并的O(log2n)O(\log ^2 n) 所以暴力线段树是 O(nlog4n)O(n\log ^4n) 改成ST表是 O(nlog3n)O(n\log ^3n) 而如果点分的话 应该是O(nlog2n)O(n\log ^2n)#include #include #include #in...
阅读(211) 评论(0)

[哈密顿路径 FFT 容斥] TCO 2016 Final HamiltonianPaths

只能走补图的边 那么原图色的边不能走 那么我们容斥走了几条原图的边 这些边肯定是一些链 把链缩成一个点 那么不考虑其他不合法边用不用的情况下 贡献是 m的阶乘 m是缩完够的点数 然后 因为缩起来的点只可能是在同一个模板图中 那么对于最后总点数m的缩点方案数 是可以先处理出单个模板图的方案数 然后fft的 状压dp预处理模板图// BEGIN CUT HERE #include<c...
阅读(186) 评论(0)

[Prufer序列推论] SRM 697 div1 ConnectedStates

首先根据可图性判定定理,可以发现任意一个和为2(n−1)2(n-1)的度数序列都存在方案,然后就是对于一个度数序列求生成树个数,根据Prufer推论,答案应该是 ∑{di}(n−2)!∏ni=1(di−1)!\sum_{\{ d_i\}} {(n-2)!\over \prod_{i=1}^n (d_i-1)!}这个直接做是O(n3)O(n^3)优化成O(n2)O(n^2),参见大佬的题解// BEG...
阅读(183) 评论(0)

[LP对偶费用流] SRM 676 div1 Farmville

二分答案T之后转化成求最小费用 加超级源和超级汇 记每个植物生长的时间为xi,结束的时间为yi,减少的时间为di。 那么限制为 yi>=xi+ti-di, yi>=xi,xj>=yi, ys+T>=xt, 最小化sum di*ci然后直接对偶成费用流在目标函数中不存在的,把权值设为inf// BEGIN CUT HERE #include #include<sstream...
阅读(178) 评论(0)

[区间DP] Codeforces 392E Round #230 (Div. 1) E. Deleting Substrings

好水的E题 f[i][j]表示删完[i,j]区间的最大收益 g[i][j] 表示把[i,j]删成a[i], a[i]+1, a[i]+2 …a[j]的最大收益 h[i][j]类似g[i][j],递减 f[i][j] <- g[i][k]+h[k][j]+v[2*a[k]-a[i]-a[j]+1] #include #include #i...
阅读(240) 评论(0)

[Nim] SRM 304 div1 TheXGame

翻译题解首先给出结论 把一段看做一堆石子 可以做到跟nim游戏等价具体 我们需要归纳证明一个结论 当前current_multiplier为 cc ,石子总数为 nn ,若异或和为 00 那么后手将以至少 n2c{n\over 2}c 的净得分获胜当游戏只剩最后两步的时候,两堆石子分别是n2n\over 2,那么后手会赢 n2c×2−n2c=n2c{n\over 2}c\times 2-{n\o...
阅读(122) 评论(0)
972条 共49页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:306784次
    • 积分:12378
    • 等级:
    • 排名:第1310名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论