摘要:
一个显而易见的结论是,这种数字的值是单调递增的。我们修改一个数只会对这个数后面的数造成影响。考虑线段树划分出来的若干线段。 这里有两种情况: 1、某个线段中的最大值小于等于修改的数,那么这个线段的贡献为0,无需处理 2、否则我们将这个线段分成两个并单独考虑,如果左侧的最大值大于修改的数,那么是不影响 阅读全文
摘要:
题意:一棵有n个点的树,树上每个点都有颜色c[i],定义每条路径的值为这条路径上经过的不同颜色数量和。求所有路径的值的和。 可以把问题转化为对每种颜色有多少条不同的路径至少经过这种颜色的点,然后加和。求有多少条路径经过可以转换为总路径数-没有经过的路径数,只要求出没有经过的路径数就好了。 对于每一个 阅读全文
摘要:
A.Sherlock Bones 题意: 给出长度为n的01串,问f(i,j)=f(j,k),(i<j<k)的i,j,k取值种数。其中f(i,j)表示[i,j]内1的个数, 且s[j]必须为1。 先把串看出是一串1两两之间穿插若干个0的联通块,不妨设block[i]为联通块i里面0的个数。 先考虑i 阅读全文
摘要:
题意: 佳佳有一个n*m的带权矩阵,她想从(1,1)出发走到(n,m)且只能往右往下移动,她能得到的娱乐值为所经过的位置的权的总和。 有一天,她被下了恶毒的诅咒,这个诅咒的作用是将她的娱乐值变为对p取模后的值,这让佳佳十分的不开心,因为她无法找到一条能使她得到最大娱乐值的路径了! 她发现这个问题实在 阅读全文
摘要:
中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数。 现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。 首先,显然有n^2logn的算法。 考虑枚举每个数x,求满足包含其的区间中这个数是中位数的区间个数。 考虑前 阅读全文
摘要:
虚拟两个点,一个从左上角开始走,一个从右下角开始走,定义dp[i][j][k]表示走了i步后,第一个点横向走了j步,第二个点横向走了k步后形成的回文方法种数。 转移方程显然可得,然后滚动数组搞一搞。 # include <cstdio> # include <cstring> # include < 阅读全文
摘要:
最近被四区题暴虐。。。 题意:lyk拥有一个区间。 它规定一个区间的价值为这个区间中所有数and起来的值与这个区间所有数or起来的值的乘积。 例如3个数2,3,6。它们and起来的值为2,or起来的值为7,这个区间对答案的贡献为2*7=14。 现在lyk有一个n个数的序列,它想知道所有n*(n+1) 阅读全文
摘要:
题意: 给定一棵n个节点的树,从1到n标号。选择k个点,你需要选择一些边使得这k个点通过选择的边联通,目标是使得选择的边数最少。 现需要计算对于所有选择k个点的情况最小选择边数的总和为多少。 考虑每条边对答案的贡献,令x为这条边左边的点数,则n-x为这条边右边的点数。 满足条件的情况数=总情况数-不 阅读全文
摘要:
题意:一个集合S的优美值定义为:最大的x,满足对于任意i∈[1,x],都存在一个S的子集S',使得S'中元素之和为i。 给定n个集合,对于每一次询问,指定一个集合S1和一个集合S2,以及一个数k,要求选择一个S2的子集S3(|S3|<=k),使得S1∪S3的优美值最大。 (集合元素可以重复) 我们首 阅读全文
摘要:
首先可以算出无解的充分不必要条件,所有边的和为sum=3*((n-1)*n)/2,如果sum%n!=0显然无解。 也就是说n为奇数必然无解。现在考虑n为偶数的情况。 不妨假设n为偶数有解,现在考虑如何将这个解构造出来。 设此时n边形的为2*k+1,那么也就说,内边的每相邻两个边的和要为{k+2... 阅读全文