02 2019 档案
摘要:题面传送门 题目大意:将一个长度为n的序列分为k段,使得总价值最大,一段区间的价值表示为区间内不同数字的个数 思路: 显然的dp。 先想到一个朴素的状态转移方程 $dp[i][k]=max(dp[j][k-1]+val[j+1][i])$,$0<=j<i$ $dp[i][k]$表示到第i为,截取了k
阅读全文
摘要:题目传送门 Ο:当场 Ø:已补 . : 待补 A Secret of Chocolate Poles 简单dp Thinking&Code:kk #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) #define fpn()
阅读全文
摘要:题目传送门 思路:首先是Burnside引理,要先学会这个博客。 Burnside引理我们总结一下,就是 每种置换下不动点的数量之和除以置换的总数,得到染色方案的数量。 这道题,显然每种洗牌方式都是一种置换,我们先数出每种置换的不动点。什么叫不动点,就是在这个置换下不停的变化后状态不变的染色方案。容
阅读全文
摘要:题目传送门 思路: 这道题需要前置知识prufer编码,这篇博客对prufer编码和这道题的分析写的很好。 这里主要讲一些对大数阶乘的分解,一个办法当然是用高精度,上面这篇博客用的是java,还有一个办法是用万进制,但是普通的万进制只能计算乘法,而这里需要用到除法,又不能用逆元(因为没有取模)怎么办
阅读全文
摘要:题目传送门 思路:树状数组套线段树模板题。 什么是树状数组套线段树,普通的树状数组每个点都是一个权值,而这里的树状数组每个点都是一颗权值线段树,我们用前缀差分的方法求得每个区间的各种信息, 其实关键就一句话,把树状数组更新的$sum[x]+=val$改成$Modify(rt[i],1,tot,a[p
阅读全文
摘要:题目传送门 思路: 区间合并线段树的题,第一次写,对于一颗子树,无论这个子树怎么交换,都不会对其他子树的逆序对造成影响,所以就直接算逆序对就好。 注意叶子节点是1到n的全排列,所以每个权值都只会出现1次,合并很好写。 注意动态开点,最多n个叶子节点,然后每次查询用到log个子树节点,(这句话似乎有语
阅读全文
摘要:题目传送门 题目大意: 有多次操作。操作0是清空二维平面的点,操作1是往二维平面(x,y)上放一个颜色为c的点,操作2是查询一个贴着y轴的矩形内有几种颜色的点,操作3退出程序。 思路: 由于查询的矩形是贴着y轴的,所以以y轴为线段树节点,建立52颗线段树,然后每个节点都保存这个纵坐标下x的最小值,然
阅读全文
摘要:A. Lunar New Year and Cross Counting 水 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using namespace std; typedef long long ll; const
阅读全文
摘要:A. Superhero Transformation 水题,注意两个字符串可能长度不相等。 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using namespace std; typedef long long l
阅读全文
摘要:题目传送门 题意简述:(来自洛谷) 有n个城市坐落在一条数轴上,第ii个城市位于位置ai. 城市之间有m辆卡车穿行.每辆卡车有四个参数:si为起点编号,fi为终点编号,ci表示每行驶1个单位长度需要消耗的油量,ri表示可以在路途中加油的次数. 当卡车到达一个城市的时候可以将油加满(当然也可
阅读全文
摘要:题目传送门 题意:给出一个序列,试将其划分为尽可能多的非空子段,满足每一个元素出现且仅出现在其中一个子段中,且在这些子段中任取若干子段,它们包含的所有数的异或和不能为0. 思路:先处理出前缀异或,这样选择更多的区间其实就相当于选择更多的前缀异或,并且这些前缀异或不能异或出0,这就变成了线性基的基础题
阅读全文
摘要:A. Minimum Integer 水 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using namespace std; typedef long long ll; const int maxn=1e3+10;
阅读全文
摘要:题目传送门 题意: 给出 n 个数,q次区间查询,每次查询,让你选择任意个下标为 [ l , r ] 区间内的任意数,使这些数异或起来最大,输出最大值。 思路:离线加线性基。 线性基学习博客1 线性基学习博客2 对于此题,先把区间按照 r 从小到大排序,然后依次处理这些区间,每次插入线性基时,优先保
阅读全文
摘要:A. Roman and Browser 题意:给出k,让你求b,使所有位置c(c满足c = b + i * k) 的标签全部消失,使1和-1的数量相差最大,求b。 枚举。 #include<bits/stdc++.h> using namespace std; typedef long long
阅读全文

浙公网安备 33010602011771号