04 2018 档案
摘要:题目大意: 维护一个序列,支持将区间内的数x变为c^x,区间求和。 题解:扩展欧拉定理 a^b=a^(b%phi(p)+phi(p)) ( mod p ) 然后因为底数是确定的,所以一个数最多运行log(x)次就不会变了,因为phi(p)执行log(x)次后变为1 线段树暴力即可 代码:
阅读全文
摘要:题目大意: 给定一张无向图,求删去一个点以后有多少个有序点对不连通。 题解:在Tarjan的过程中记录不能到达这个节点以上的子树和,统计答案。 代码:
阅读全文
摘要:题目大意: 软件之间有依赖关系,若这款软件依赖的软件能产生贡献且这款软件被安装了则这款软件能产生vi的贡献,同时安装这款软件需要wi的内存。 问内存不超过m时所能得到的最大贡献。 题解:若依赖关系存在环,显然要使得环中的任意一个软件产生贡献必须把整个环取了。 先缩点,把一个环当成一个物品,然后缩完点
阅读全文
摘要:题目大意: 有n个数,选择k个数,最大化这些数通过加减能得到的最小的正整数。 题解: 这些数通过加减能得到的最小的数为他们的最大公约数。 题目要求n个数字中选择k个使得他们的最大公约数最大。 枚举所有约数,找出最大的且出现次数大于k的约数。 代码:
阅读全文
摘要:题目大意: 求区间众数,强制在线。 题解: 考虑分块,一段区间的众数一定在整块的众数和两边多出来的数中。 可能是众数的数有O(sqrt(n))个,然后我们考虑查询这些数在区间中出现了几次。 把原来的序列中相同数字的下标从小到大扔进vector中,然后二分就能求每个数在区间中出现了几次。 找一个出现次
阅读全文
摘要:题目大意: 给定每种球的数量,求从中选取k个球有多少种不同的取法,同种球视为相同的。 题解: 多项式(1+x+x^2+...+x^a[1])*(1+x+x^2+...+x^a[2])*(1+x+x^2+...+x^a[3])*...*(1+x+x^2+...+x^a[n])的第k次项的系数。 首先我
阅读全文
摘要:题目大意: 求2^(2^(2^...))%p的值,每次给定p。 题解: 扩展欧拉定理 a^n=a^(n%phi(p)+phi(p)) (mod p) 设f(p)为模数为p时候这个式子的答案。 f(p)=2^(f(phi(p))+phi(p)) 然后递归暴力,因为每次取phi,不会递归很多层 代码:
阅读全文
摘要:题目大意: n皇后问题,有些格子不能放。 题解: 直接暴力,并不用加优化就能过。 代码:
阅读全文
摘要:题目大意: 每辆赛车有自己的出发位置和速度,问有多少赛车在某个时刻处于第一的位置。 题解: 每辆赛车任意时刻的位置可以用一条直线来表示,按斜率排序依次加入,单调栈。 最后在栈中的就是最后的答案。 和BZOJ1007相似。 代码:
阅读全文
摘要:题目大意: 加入直线,删除直线,求点到所有直线的距离的平方和。 题解: 把点到直线的距离公式写出来,然后展开。维护六个值,计算一个二元的多项式的最小值。 对x和y分别求导,导数都为零时取到极值。然后解一个方程组。 要各种讨论,方程的解可能不唯一,任取一个。 代码:
阅读全文
摘要:题目大意:求最少的链能覆盖一个DAG,可以重复。 题解: 比较显然的上下界最小流,其实没有上界。 代码:
阅读全文
摘要:题目大意: 一个序列,每个位置有p的概率是1,否则是0。 序列中一段连续1的个数为x,则贡献为x^3,且这连续的一段1不能被其余的一段1所包含。 题解: 考虑每一位是1对答案的贡献。 x^3 >(x+1)^3 发现贡献和x^2的期望和x的期望有关。dp求出。 这一位如果是0,则没有贡献。 这题应该可
阅读全文
摘要:题目大意: https://www.lydsy.com/JudgeOnline/problem.php?id=5251 题解: 要求最优的录取方案,网络流。 问每个人的排名至少上升多少才能满足期望,这个有二分性。二分+网络流判定,没有加优化所以在某些网站上会T。 代码:
阅读全文
摘要:题目大意: 计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n 。 题解:把b倒过来,求卷积,FFT。 代码:
阅读全文
摘要:题目大意: 把数放入一棵树中,要求父亲节点权值小于等于儿子。问最大的BFS序。 题解:显然要让前面的尽可能大,考虑当前这个数最大能放多少,这个节点要为他的子树预留下子树大小个点。 然后建一颗权值线段树,维护区间最小后缀和。这个数最大能放多少就是最大的数使得后缀和的前缀最小值>=他子树大小。 每访问一
阅读全文
摘要:题目大意: 一个网格,两个人轮流放棋子,一个格子能放当且仅当这个格子的左面和上面已经填满。两个人每放一个格子都会获得相应的得分。 目标:自己得分-对方得分尽可能大。 问最终得分差。 题解:状压DP,用0/1来表示轮廓线。 代码:
阅读全文
摘要:题目大意: 完成一个任务能获得钱,但是需要租用多个机器或者购买多个机器来完成,当然也可以不完成。 求最大利润。 题解:最小割,比较显然。 代码:
阅读全文
摘要:题目大意: 求一个序列的第k大的子串和。 题解: 对于一个右端点找最优的左端点,扔进堆里。 每次取堆顶,将这个右端点可以选择的左端点的区间分成两段,扔进堆里,重复k次。 现在需要对于一个固定的右端点,左端点在一个区间里,求最大值。 可持久化线段树上区间修改,不用标记永久化也可以过。 代码:
阅读全文
摘要:题目大意:有一个0/1序列,每次可以询问任意一段的奇偶性,但有代价。 问确定这个序列所花的最小代价。 题解:令sum[i]表示前缀和的奇偶,询问了sum[r]-sum[l-1]的奇偶,已知sum[0]的奇偶,求所有前缀的奇偶。 最小生成树。 代码:
阅读全文
摘要:题目大意:求n个数分成k段的最小代价。 题解:DP,没什么好说的。 代码:
阅读全文
摘要:题目大意: 求一棵树的最小路径覆盖。 题解: f[x][0/1/2]表示以i为根的子树中i连出了几条边的最小路径覆盖。 代码:
阅读全文
摘要:题目大意: 给定一张网格图,求图上删掉T个障碍物之后能联通的两点的最大欧几里德距离是多少。 题解: 预处理两点间路径经过的最小障碍物数,判断是否小于T,更新答案。 代码:
阅读全文
摘要:题目大意: 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 题解:从中位数向左右扫,小于b减一,大于b加一。让左右两边之和为0就是一个合法的连续子序列,开了个map。 代码:
阅读全文
摘要:题目大意: 问树上有多少对点他们的距离小于等于k。 题解:点分治。 代码:
阅读全文
摘要:题目大意: 求树上所有路径中的前k长路。 题解: 我们把这棵树的点分治序处理出来。假设我们确定了一个分治中心下的一条链,我们需要找到另一条链使得两条加起来最大。 那么另外一条可行链的端点在点分治序上一定形成一段区间。然后就变成了对于一个右端点都有一段可行的左端点,要求两点权值和最大。 之后就变成了B
阅读全文
摘要:题目大意: 一个区间的价值为区间内所有数的和。 求序列中长度在L至R的区间中价值前k大的区间的价值和。 题解: 一个区间价值用s[r]-s[l]来表示,s为前缀和。假设固定了右端点,则可以通过st表来确定左端点的最优位置。对于所有的右端点,我们将他们扔进堆里就能找出最大值来。 然后对于一个右端点确定
阅读全文
摘要:题目大意: 给出一个序列,有几个位置上的数字任意。求最小的逆序对数。 题解: 自己决定放置的数一定是单调不降的。不然把任意两个交换一下就能证明一定会增加逆序对。 然后就可以DP了,f[i][j]表示第i个位置放了j,前i个位置所能产生的最少逆序对数。 用前缀min优化一下就好了。 代码:
阅读全文
摘要:题目大意: 每次操作可以让除了一条边之外的所有边-1,问让一条边必定出现在最小生成树上的代价是多少。 题解: 一条边必定出现在最小生成树上说明比它小的边不能把两点提前联通。对于比给定边小的边,割掉这条边的代价就要使得这条边比给定边权值来得大,目标是让给定边连接的两点不连通。 这就是最小割问题了 代码
阅读全文
摘要:题面:求一棵树嵌入一张图里有多少种不同的方案数 题解:首先是一个树形DP。dp[x][s]表示以x为根的子树使用了s这个集合。然而发现这个转移要枚举子集,复杂度好像很高的样子,我也不知道加了神奇的优化能不能过去。 然后我们发现如果一个数可以同时对应多个数就可以避免枚举子集,现在假设不用一一对应,状态
阅读全文
摘要:题意:完全背包 题解:完全背包 代码:
阅读全文
摘要:题目大意:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 题解:首先以1为根统计一次答案,然后每次O(1)换根统计答案 代码:
阅读全文
摘要:题目大意: 给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。 题解: 如果这个数存在,那么这个数存在的区间中数的个数必定大于(r-l+1)/2,这里的区间以数值为下标。我
阅读全文

浙公网安备 33010602011771号