自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EM LGH

It's Time to Make History

  • 博客(23)
  • 收藏
  • 关注

原创 LOJ#2538. 「PKUWC2018」Slay the Spire DP+组合

自己想+切掉的,开心. 推一推就发现如果要权值最大,就尽量使用那个乘法. 然后就分两种情况讨论一下:1. 乘法用到 k-1 次.2. 乘法用不到 k-1 次. code:#include <bits/stdc++.h> #define ll long long #define N 3006 #define mod 998244...

2020-05-29 17:15:00 142

原创 LOJ#2537. 「PKUWC2018」Minimax 线段树合并

$O(n^2)$ 的式子是好列的,然后我们发现这是一个关于前后缀的转移. 用线段树合并优化这一过程. 具体地,分别维护 $x,y$ 的后缀和. 这里要注意:由于这道题中两个不同子树肯定没有交集,所以在线段树合并的时候肯定会合并到一个点,使得两个树中一个为空.然后由于另一个是空的,就没有合并的必要了,这样整个区间乘的就是一个相同的数了.这样就只需要维护一个乘法...

2020-05-29 13:59:00 119

原创 luoguP4220 [WC2018]通道 随机化

有一个非常暴力的做法:枚举 $u,v$ 两点中的一个点作为根,然后在 3 棵树中以这个点为根 DFS 一遍,求最大值.然后考虑用随机化去骗分:设当前枚举的点为 $x$,下一个点 $y$ 可以是 $x$ 为根时求出的最优解.然后每隔 8 到 9 次随机一个新的 $x$. code:#include <bits/stdc++.h> #define ...

2020-05-28 19:48:00 87

原创 LOJ#3097. 「SNOI2019」通信 最小费用流+主席树优化建图

如果做过软件开发,餐巾计划问题的话这题就秒切了. 还是类似的套路:借流思想. 正解的话就是无聊地上一个主席树优化建图就行. 维护一颗边权为正数地主席树,再维护一颗边权为负数的主席树就行. 主席树写了,感觉好恶心...... code:#include <bits/stdc++.h> #define N 3008 #define ...

2020-05-28 10:20:00 154

原创 bzoj2661: [BeiJing wc2012]连连看 最小费用流

这道题正统的做法应该是进行黑白染色(因为我们发现 $x,y$ 满足二分图的性质) 这里写了一个不会证明正确性的解法. 一般来说,这种相消/要求互质什么的一般都要转换成二分图来解决.code:#include <bits/stdc++.h> #define N 20008 #define inf 10000000 #define ll long...

2020-05-28 09:59:00 95

原创 bzoj1927: [Sdoi2010]星际竞速 最小费用流

和软件安装比较相似的拆点模型. 我们发现,每个点只能经过一次,也就是说每个点最多可以贡献给其他点一次. 然后连边方式和软件安装就几乎是相同的了.code:#include <bits/stdc++.h> #define N 2008 #define inf 10000000 #define ll long long #define set...

2020-05-28 08:56:00 82

原创 LOJ#6433. 「PKUSC2018」最大前缀和 状压DP

思路比较自然.开始的时候有一个地方糊涂了,后来想清楚就好了. 这里注意一个地方:令 $f[S]$ 表示 $S$ 集合的所有排列中 sum(S) 为最大值的排列数. 然后转移 $f[S]$ 的时候要把新的元素放到序列开头,因为放到结尾的话前面的前缀可能非常小,导致到达不了结尾.code:#include <bits/stdc++.h> #...

2020-05-27 16:37:00 115

原创 LOJ #3113. 「SDOI2019」热闹的聚会与尴尬的聚会 贪心+随机化

我不明白这道题第二问到底在说啥...... 第一问比较简单,直接用 set 来贪心就行了.然后我感觉第二问就是求一个最大独立集就行.套路:都 0202 年了,看到最优化就要上随机化呀!! code:#include <bits/stdc++.h> #define N 10008 #define M 100008 #defin...

2020-05-27 11:20:00 143

原创 LOJ #3093. 「BJOI2019」光线 递推

这道题比的就是谁更细心. 令 $f[i]$ 表示前 $i$ 面玻璃的透过率(从 $1$ 射入)令 $g[i]$ 表示前 $i$ 面玻璃的反射率(从 $i$ 射入) 然后进行递推就行. code:#include <bits/stdc++.h> #define ll long long #define mod 1000000007 ...

2020-05-27 08:48:00 107

原创 UOJ#21. 【UR #1】缩进优化 数学

十分轻松的一道数学题.这个整除非常不好搞.但是呢,我们发现 $a[i]$ mod $x$ 可以等价于 $a[i]-\frac{a[i]}{x} \times x$,我们就构造出了公因式,然后推一推就没了.code:#include <bits/stdc++.h> #define ll long long #define N 1000008 #...

2020-05-26 16:53:00 181

原创 LOJ #2341. 「WC2018」即时战略 交互+LCT+随机化

第一次做交互题,感觉挺有趣的. 这道题链的部分还挺好想的.然后树的部分就轻重链剖分后在链上二分拐点就好了.动态轻重链剖分用 LCT 来维护.code:#include "rts.h"#include <bits/stdc++.h> #define N 1000005 #define ll long long #define lson...

2020-05-22 12:48:00 127

原创 CF364D Ghd 随机化

由于题目要求所选集合大小要大于等于 $\frac{n}{2}$,所以你随便选一个数至少有一半的概率在集合里. 那么我们就随机选 10 个左右的数,成功率是 $1-\frac{1}{2^{10}}.$code:#include<iostream>#include<cstdio>#include<time.h>#include&lt...

2020-05-17 10:41:00 123

原创 BZOJ 4080: [Wf2014]Sensor Network 随机化+贪心

有一个显然错误的做法:依次试着将点加入团内. 但是我们可以随机这个加入顺序,成功率就大大提高了. code:#include <bits/stdc++.h> #define N 506 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespac...

2020-05-16 19:50:00 110

原创 UOJ #88. 【集训队互测2015】Robot 李超线段树

李超线段树模板题,要同时维护最大值和最小值,然后求交点的时候注意 double 的转换code:#include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <vector> #include <...

2020-05-11 12:37:00 125

原创 BZOJ 1568: [JSOI2008]Blue Mary开公司 (李超线段树)

第一次学这个东西,感觉还是挺好写 + 好用的.code:#include <bits/stdc++.h> #define ll long long #define M 50000 #define N 100008#define eps 1e-12 #define lson now<<1 #define rson now&...

2020-05-11 00:04:00 174

原创 LOJ #3277. 「JOISC 2020 Day3」星座 3 (笛卡尔树+线段树合并)

笛卡尔树好神奇啊!我们考虑对白色区域维护以最大值为中点笛卡尔树,然后考虑怎么合并左右区间:令 $f[h]$ 表示最高高度为 $h$ 的最大保留权和,v 表示当前笛卡尔树节点的权值.考虑如何合并左右区间:显然,如果要将 $f[y]$ 贡献给 $f[x]$,那么 $x$ 要大于 $y.$我们将左右区间的所有状态分成大于等于 $v$ 和小于等于 $v$. 因为要求...

2020-05-09 16:23:00 286

原创 luoguP4755 Beautiful Pair 笛卡尔树+线段树合并+启发式合并

新学了一下笛卡尔树,这道题是模板题,统计一下以 $x$ 为 lca 的点对就行.然后统计的话用线段树合并 + 启发式合并就行了.code:#include <bits/stdc++.h> #define N 100006 #define ll long long #define lson s[x].ls #define rson s[x]...

2020-05-08 22:14:00 89

原创 luoguP4755 Beautiful Pair (笛卡尔树+线段树合并+启发式合并)

新学了一下笛卡尔树,这道题是模板题,统计一下以 $x$ 为 lca 的点对就行.然后统计的话用线段树合并 + 启发式合并就行了.code:#include <bits/stdc++.h> #define N 100006 #define ll long long #define lson s[x].ls #define rson s[x]...

2020-05-08 22:14:00 68

原创 Comet OJ - Contest #11 F (arewell) (容斥+FST)

非常经典的 DAG 计数,由于不是完全图,所以要进行子集 DP. 然后容斥一下发现可以写成 FST 的形式.code:#include <bits/stdc++.h> #define N 23 #define ll long long #define mod 998244353 #define setIO(s) freopen(s".in","...

2020-05-03 15:12:00 159

原创 Come OJ P3803 Farewell 容斥+快速子集变换

题意:给定 $n$ 个点,$m$ 条边的图,求有多少子图满足子图 (即边可以任意定方向或消失)是一个 DAG ?$f(S)=\sum_{T \subseteq S} (-1)^{|T|-1} \binom{|S|}{|T|} f(S-T) 2^{E(S)-E(T)-E(S-T)}$.这里 $E(S)$ 表示点集 $S$ 包含的边的数量. 直接套用这个式子,然后用 FWT ...

2020-05-03 15:12:00 75

原创 LOJ #2127. 「HAOI2015」按位或 (min-max 容斥 + FWT)

这个题关键在于求一个集合所有子集之和,然后来一遍 $or$ 的正变换即可. code:#include <bits/stdc++.h> #define N 21 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; i...

2020-05-03 11:39:00 103

原创 LOJ #2127. 「HAOI2015」按位或 min-max容斥+FWT

题意:给定 $1$ ~ $2^n-1$ 每个数出现的概率. 每次会随机选择一个数字,与手中的数字 or 起来. 求:期望多少次使得手中的数字等于 $2^n-1$. 题解: 考虑 min-max 容斥. $\max(S)=\sum_{T \subseteq S} (-1)^{|T|} \min(T)$. 套一个期望这个式子也是成立的:$...

2020-05-03 11:39:00 72

原创 HDU - 4336 Card Collector min-max 容斥

公式:$max(S)=\sum_{ T\in S} (-1)^{|T|-1} min(S)$ code:#include <bits/stdc++.h> #define ll long long #define N 23 #define setIO(s) freopen(s".in","r",stdin) using namespace std;...

2020-05-03 10:26:00 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除