关闭
当前搜索:

[LP对偶 & 最大费用可行流] TopCoder SRM 676 div1 Farmville

二分答案 XX 设植物开始生长的时间是 xix_i ,结束生长的时间为 yiy_i那么要满足以下限制 yi≥xiy_i\ge x_i yi≥xi+ti−diy_i\ge x_i+t_i-d_i xi≥yjx_i\ge y_j(jj 要在 ii 之前生长) xt≥yix_t\ge y_i xi≥ysx_i\ge y_s 用这个东西对欧成最大费用可行流,处理一下正权环就好了#line 5 "Farmv...
阅读(14) 评论(0)

[二维区间DP?] Atcoder ARC004E. Salvage Robots

可以让出口移动,robots不动 fu,d,l,rf_{u,d,l,r} 表示出口活动的区域为 (x−u,y−l)(x-u,y-l) 到 (x+d,y+r)(x+d,y+r) 这个矩形时最多能救多少机器人。转移的话,画画图可以知道哪些区域求不了#include #include #include #include u...
阅读(29) 评论(0)

[堆 折线] UOJ#205 & BZOJ4585 【APIO2016】Fireworks

大概是一个子树中的 fxf_x 是一个单峰函数,转折点用可并堆维护具体看这里#include #include #include using namespace std;typedef long long ll;const int N=1200010;int n,m,cnt,fa[N],G[N]; struct edge{ int t...
阅读(28) 评论(0)

[堆 折线] Codeforces713C. Sonya and Problem Wihtout a Legend

CF题解 很妙啊#include #include #include #include using namespace std;typedef long long ll;const int N=3010;int n,c; ll ans;priority_queue Q;int main(){ freopen...
阅读(27) 评论(0)

[状压DP] TopCoderSRM549 DIV1 600. MagicalHats

对帽子状压,0表示没选过,1表示选过但是没有硬币,2表示选过且存在硬币。 可以先dp出每一种情况是否合法,然后dp显然只要DP出最多能得到几个硬币就好了(magician肯定会从小到大给你硬币) 对于状态S,枚举选择哪个帽子,magician会在“在这个帽子里放硬币”和“在这个帽子里不放硬币”选择较小的。记忆化搜索一下// BEGIN CUT HERE // END CUT HERE #l...
阅读(37) 评论(0)

[历史最值线段树] UOJ#164. 【清华集训2015】V

这种标记很强啊… UR#11 C题解#include #include #include using namespace std;typedef long long ll;const int N=500010; const ll inf=1LL<<60;int n,m,a[N]; struct tag{ ll a,b; tag(...
阅读(43) 评论(1)

[树链剖分 李超线段树] BZOJ4515 [Sdoi2016] 游戏

链剖以后就跟数列的做法一样了这题是区间覆盖区间查询,所以还要记一下区间里所有函数的最小值#include #include #include using namespace std;typedef long long ll;const int N=100010;int n,m,cnt,tt,G[N],dpt[N],id[N<<2]; ll...
阅读(165) 评论(0)

[李超线段树] BZOJ3165 [Heoi2013]. Segment

李超线段树裸题#include #include #include #include using namespace std;const int N=100010,MX=40000;int n,lst,cnt;inline char nc(){ static char buf[100000],*p1=buf,*p2=b...
阅读(34) 评论(0)

[点分树] Codechef December Challenge 2017. Chef, Leonardo And Queries

我好像只会套路数据结构题了…暴力上点分树,这样的递推形式可以用矩阵表示,那么对于点 ii ,它的线段树上区间覆盖上 fdis(i,u)×Af_{dis(i,u)}\times A 的表示,其中 fif_i 表示转移矩阵的 ii 次方,AA 就是题目给出的 a,ba,b 构成的矩阵。然后询问点 ii 管辖的点 jj 的时候,线段树中询问得到的结果乘上 fdis(i,j)f_{dis(i,j)} 就好了...
阅读(47) 评论(0)

[线段树] Codechef December Challenge 2017. Red and blue points

没有大腿打CC是真的累跟JOI这题一个套路#include #include #include using namespace std;const int N=2010;struct pt{ int x,y,c; friend bool operator <(pt a,pt b){ return a.x<b.x || (a...
阅读(38) 评论(0)

[启发式合并 DP] Atcoder ARC086E. Smuggling Marbles

比赛的时候想到了每层独立,但是不会搞…官方题解好像学到了关于深度的信息启发式合并的次数是 O(n)O(n) 的… 还有deque这种神奇的东西……像我以前都是set加上各种外层的标记……果然还是太弱了#include #include #include #include using namespace std;typed...
阅读(70) 评论(0)

[DP] TopCoder SRM548 Div1 450. KingdomAndDice

把B排序一遍,然后记忆化搜索一下用 fx,y,k,zf_{x,y,k,z} 表示a数组中第x个零,枚举到 b[y]+kb[y]+k,且 ai>aja_i>a_j 的点对 (i,j)(i,j) 有z个的情况是否可行,这样数组大小是50*50*50*2500的, bitset存一下就好了…没打过这么暴力的程序#include #include #include...
阅读(39) 评论(0)

[第二类斯特林数 FFT] BZOJ5093. 图的价值

怕是一道套路题…然而这种题还是不太会 考虑每个点的贡献都是相同的 那么答案就是 n2(n−12)∑i=0n−1(n−1i)ikn2^{n-1\choose 2}\sum_{i=0}^{n-1}{n-1\choose i}i^kiki^k 用第二类斯特林数带进去得到n2(n−12)∑i=0n−1(n−1i)∑j=0kS(k,j)j!(ij)n2^{n-1\choose 2}\sum_{i=0}^{...
阅读(41) 评论(0)

[贪心 高维前缀和] BZOJ5092. 分割序列

设前缀疑惑和为 sis_i 那么对于每个前缀 sis_i,相当于找一个 sjs_j 使得 sj+(si⊕sj)s_j+(s_i\oplus s_j) 最大从高位往低位贪心,判断是否存在。 可以用 O(nlogn)O(n\log n ) 的高维前缀和预处理#include #include #include #include <cs...
阅读(57) 评论(0)

[矩阵快速幂] Atcoder AGC003 F. Fraction of Fractal

很神的题!!!首先观察一下每次转移如果初始的图案存在某一行 ii,满足行的两个端点为黑,且存在某一列也是满足这样的条件,那么答案就是1,因为原来就连通的黑块转移后的图案也是联通的。如果行和列都不满足,因为每次转移答案都会乘 xx, 那么答案就是 xk−1x^{k-1} ,其中 xx 为初始图案中的黑块数量。如果只有行满足这样的条件(列满足的话转一下图案),设 xx 等于黑块的数量, yy 等于初始图...
阅读(33) 评论(0)

[二分 单调队列] Atcoder AGC003 E. Sequential operations on Sequence

首先可以发现,如果 xi>xi+1x_i>x_{i+1} 那么 xix_{i} 就是没用的,所以我们就倒过来求一个递减的序列然后考虑第 ii 次操作后的数列,肯定是由第 i−1i-1 次操作后的数列循环几次再加一个前缀得到的而那个前缀也是由之前的某个前缀得到的,那么就二分一下,记一下每次操作会执行几次(也就是被后面的操作覆盖几次)瞎搞一下因为每次操作最多二分log次,所以总复杂度是 O(nlog2n...
阅读(31) 评论(0)

[博弈]Atcoder AGC002 E. Candy Piles

把A排序一遍,设刚开始在(0,0)点,那么操作一相当于右移,操作二相当于上移,这就可以用SG函数来解决。边界的SG值为0,而且可以证明(x,y)的SG值和(x+1,y+1)的SG值相同,但是(x+1,y+1)不是边界那么x,y同时加1,直到到达边界之前,然后算一下就好了。#include #include #include using n...
阅读(34) 评论(0)

[整体二分 并查集]Atcoder AGC002 D. Stamp Rally

每个询问就是求最小的 xx,使得保留编号小于等于 xx 的边后,和 ai,bia_i,b_i 相连的点大于等于 ziz_i这个东西整体二分一下,用按秩合并的并查集维护一下就好了吧#include #include #include #define fi first #define se secondusing namespace std...
阅读(36) 评论(0)

[计数 DP]Atcoder AGC001 E. BBQ Hard

答案是求 ∑i≠j(ai+aj+bi+bjai+aj)\sum_{i\neq j}{a_i+a_j+b_i+b_j\choose a_i+a_j}这就相当于从平面内的 (−ai,−bi)(-a_i,-b_i) 走到 (aj,bj)(a_j,b_j) 的方案数把点放到平面上,DP就好了#include #include #include ...
阅读(36) 评论(0)

[构造] Atcoder AGC001 D. Arrays and Palindrome

很神奇的构造题…首先有一个结论,就是当给定数列的奇数的个数大于2的时候,就无解然后把奇数放在两端,输出 A1−1,A2…Am−1,Am+1A_1-1,A_2\dots A_{m-1},A_{m}+1 就好了#include #include #include using namespace std;const int N=110;int...
阅读(39) 评论(0)
312条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:60101次
    • 积分:3618
    • 等级:
    • 排名:第10207名
    • 原创:312篇
    • 转载:0篇
    • 译文:0篇
    • 评论:13条