- 博客(16)
- 收藏
- 关注
原创 Bitset
一直知道这个东西但具体还真没用过,今天来学习一下。Bitset具体也没什么麻烦的操作,无非是一些简单的位运算。用几道题来看一下具体适用的情况:BZOJ3687 简单题题意:给定n个正整数,求所有子集和的异或和。n<1000,∑ai<=2000000n<1000, \sum ai<=2000000n<1000,∑ai<=2000000。思路:因为限制了所...
2020-02-29 23:28:43
138
原创 codeforces 1315E
题目链接题目大意:一道让人看了就想跳过的题,题目花了好长好长的篇幅马马虎虎的介绍完了双败赛制,如果不是有图看了还是一头雾水,那么就直接看图:题目给我们一个 nnn ,代表总共会有 2n2^n2n 个队伍参与比赛,按队伍标号顺序如图进行双败赛制的比赛,给定 kkk 个主队,问在可以改变任意胜负关系的情况下,你的主队能参与最多多少场比赛(两个队参与同一场只算一场)。n<=17n<...
2020-02-27 02:02:59
220
原创 BZOJ 3591 最长上升子序列
题目链接题意:给定 kkk 个数,求所有长度为 nnn 且最长上升子序列的排列为给定的 kkk 个数的方案数。n<=15n<=15n<=15首先想到可以用状压解决排列的顺序问题,而仅通过 0,10,10,1 无法表达出最长上升子序列的长度,而再开一维进行表示也无法进行有效转移。那么考虑在求是 LISLISLIS 时我们会对一个数组不断进行覆盖,每个数字会逐个填入或被覆盖...
2020-02-27 01:05:32
316
原创 2020 CCPC-Wannafly-Winter-Camp Day5 C Self-Adjusting Segment Tree
好久都懒得写题解,直到今天跟着题解写完这道题,瞬间被美妙的做法震惊到了,来记录一下。题目大意:对于一颗线段树,你可以对每个区间的断点进行重新分配,如区间 l,rl, rl,r 可以在 [l,r][l, r][l,r] 中任选一个m作为断点使得两个儿子分别为 [l,m][l, m][l,m] [m+1,r][m+1, r][m+1,r]。给m次询问,每次询问为一个区间,求在线段树查询时总共需...
2020-02-01 23:56:42
192
原创 LA3363 String Compression 区间DP
题目链接题目大意:给一个字符串,可以进行压缩操作,例如ababab可以压缩成3(ab),cababcabab可以压缩成2(c2(ab)),以此类推。求字符串压缩后最短长度。字符串长度小于等于200。我们只需用 dp[i][j]dp[i][j]dp[i][j] 表示 i 到 j 的最短长度,而对于一个可以压缩的长串,我们可以枚举一个最靠左的字串,判断是否可以压缩,而压缩后的长度显然可以通过...
2019-09-25 00:44:40
140
原创 点分治
入门了一下点分治,发现也并不是很难。解决的问题一般是树上满足某种条件的点对数。思路也很直接,首先如果考虑暴力分治求解,对于一个树根来说,满足条件的点对可以分为两类:经过树根不经过树根那么考虑对其分治,每次只计算第一类经过树根的点对数,然后分治其各个子树即可。考虑此时的复杂度,如果我们能在 O(n)O(n)O(n) 或 O(nlogn)O(nlogn)O(nlogn) 的时间内处理出...
2019-09-24 21:16:08
103
原创 树状数组套主席树
年轻人的第一次树套树首先是一道经典的动态区间第k大。先回想一下静态区间第k大的做法,主席树维护前缀的权值线段树,查询时在 l−1l-1l−1 和 rrr 两颗权值线段树上一起二分。动态问题无非是添加了一个修改步骤,而如果要暴力修改的话需要对 iii 到 nnn 的线段树都进行修改,复杂度来到 n2lognn^2lognn2logn 。考虑用树状数组维护对应区间的权值线段树,每次修改对 lo...
2019-09-10 20:17:30
339
原创 codeforces 1107E 区间DP
题目链接题目大意:给一个01串,每次选定任意长度 lll 的相同字符组成的字串并删除,可以获得 p[l]p[l]p[l] 的贡献,求将这个01串删完获得的最大贡献是多少。01串长度小于等于100。思路:简单的区间DP,保存区间最大贡献值,在转移时需要用到两个区间的剩余相同字符长度,因此DP数组设为四维 dp[i][j][k][0/1]dp[i][j][k][0/1]dp[i][j][k...
2019-09-04 01:17:02
176
原创 HDU 6686 多校第九场1007 Rikka with Travels 换根dp
题目链接来自一道看起来简单因为少考虑情况写到吐得一道题…(还是不能口胡呀题目大意:给一棵树,二元组 (x,y)(x,y)(x,y) 表示树上任意两段不相交路径上的点数,求所有不相同二元组的数量。点数1e51e51e5思路:首先想法是枚举边,将这条边割开后,两边子树的直径即为一组(x,y)(x,y)(x,y)的上界,即给定一组(x,y)(x,y)(x,y),那么(x−1,y),(x−2,...
2019-08-30 14:46:07
256
原创 codeforces 1208 CDEF
题目链接C. Magic Grid题目大意:用 [0, n2−1n^2-1n2−1] 的数字各一次构造一个边长为n的正方形矩阵,使得每一行之中所有数字异或值都相等,每一列之中所有数字异或值都相等,保证n为4的倍数思路:对于一个2×22\times22×2的矩阵来说,0123\begin{matrix} 0 & 1 \\ 2 & 3 \end{matrix}0...
2019-08-29 00:26:39
138
原创 启发式分治
最近跟着这个大佬 nimphy 学了一下启发式分治根据目前对启发式分治的理解写一下总结启发式分治,一般用于解决区间问题,对满足某种条件的区间进行分治,在枚举其分治点的时候进行一些启发式操作例题一Non-boring sequences题目大意:对一个序列,如果其任意子区间都有至少一个数只出现一次,那么则称这个序列为non-boring的,否则为boring思路:预处理每个数上一...
2019-08-23 01:56:51
390
原创 2019 杭电HDU多校第八场 HDU6662 Acesrc and Travel (换根dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6662题目大意:一颗树的n个节点,A和B两个人每次选一个节点,在一个人选了第i个节点后,两个人分别获得贡献为 ai 和 bi。每次选的节点必须与上一个人选的节点相连,且一个点只能被选一次,每个人的目的为使自己获得的总贡献减去对方的值最大。保证每个人都选最优解,A先选,问A能获得的最大差值是多少...
2019-08-15 19:49:25
552
3
原创 Comet OJ contest #7 C题 (状压dp)
题目大意:n张牌编号从1到n,给定每张牌不能放的位置,记编号i的牌位置为posi,那么两张牌编号 i、j 满足 j > i && posj < posi,那么对整个序列key贡献为 | i - j | * | posj - posi |,否则贡献为0求所有符合要求的牌的排列的key值之和题目链接: https://cometoj.com/contest/52/pr...
2019-08-11 00:03:16
121
原创 2019 acm-icpc 西安全国邀请赛 J
2019 acm-icpc 西安全国邀请赛 J (树上dp or 树上点分治)(下文为dp做法,点分治留坑)题目链接: https://nanti.jisuanke.com/t/39277题意:给一棵树,X(u,v)为uv两点件所有边的异或值求:结果取模1e9+7数据范围:n<=1e5, 边权w<=1e18思路:用map记录 每个异或值的子树大小在子节点与父节点合...
2019-05-27 15:40:07
720
原创 CF 1144G
CF 1144G 贪心(可dp)题目链接:http://codeforces.com/contest/1144/problem/G题意:给一个长度为n的数字串 要求将该数字串 不改变顺序 分出一个 严格递增 的序列和 严格递减 的序列可以分出则输出YES并输出选择情况不能则输出NOn大小为 [ 1, 2e5 ]思路:因为不能改变原数字串的顺序,从左到右遍历一遍即可。问题在于如何选出当...
2019-04-02 20:55:10
253
原创 CF 1067A
CF 1067A DP(算是数位DP? 算是第一道做出来的数位DP 嘻嘻)题目链接:http://codeforces.com/contest/1067/problem/A题意:有一个长度为N的序列(2≤n≤1e5)满足:a1≤a2,an≤an−1,ai≤max(ai−1,ai+1)每一个ai的范围是[1,200]求有多少种满足条件的序列答案对998244353取模dp[max...
2019-03-11 17:03:33
315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人