随笔分类 - 数论
摘要:D(树上倍增) 题意: 刚开始有一个点1,权值为0。 接下来有q个操作,每个操作有两种: 1 R W:新加一个点,这个点的权值为W,这个点的父亲是R 2 R X:在从点R到1的路径上,取出从R开始的不降单调栈,问从栈底到栈顶这么多元素,最多能取出多少个点,使得这些点的点权和<=X 强制在线 q<=4
阅读全文
摘要:A 略 B 略 C(轮廓线dp) 题意: 分析: 如果以(i,j)为右下角考虑设计dp,那么会需要用到多余的状态,这样状态就很爆炸了 仍旧考虑轮廓线dp,维护一个格子上的轮廓线的m个状态,考虑从dp(i,j)转移到一个dp(i,j+k) 即以(i,j)为矩形的左下角去枚举转移,这样只需要轮廓线上的状
阅读全文
摘要:A 略 B(大数) 题意: 求的奇偶性 其中n<=10^1000 分析: 等价于求$\biggl\lfloor\frac{n}{1}\biggr\rfloor + \biggl\lfloor\frac{n}{2}\biggr\rfloor+\biggl\lfloor\frac{n}{3}\biggr
阅读全文
摘要:补题进度:10/10 A(树形dp) 略 B(dp) 题意: 给出一个n个关键节点的机械手臂,最开始是竖直的,即关键点在二维平面上的坐标分别是(0,0) (0,100) (0,200) (0,300)......,然后我们每次可以选择一个关键节点把它旋转45°(当然它上面的那些点也要跟着旋转) 现在
阅读全文
摘要:补题进度:6/10 A(状压dp) 题意: 有n个数字1,2,...,n,有m个限制(a,b),表示至少要有一个数字a排在数字b的前面 你需要构造出一个含有数字1~n的序列,数字可以重复多次,要求该序列满足所有的m个限制,并且长度最短,你只需要输出最短的长度 n<=18,m<=n(n-1) 分析:
阅读全文
摘要:补题进度:7/11 A(博弈论) 略 B 待填坑 C(贪心) 题意: 一个序列是good的当且仅当相邻两个数字不相同。给出一个长度为n的数列,每个数字是ai。定义一种操作就是把a中某个元素拿到首位去,问最少需要多少次操作才能让数列a变成good的。如果不可行则输出-1。 n<=1000,1<=ai<
阅读全文
摘要:分析: 我们可以写把转移矩阵A写出来,然后求一下它的特征多项式,经过手动计算应该是这样的p(x)=xk−k∑i=1ai∗xk−i 根据Cayley-Hamilton定理可得,p(A)=0 他表示An=f(A)∗p(A)+g(A) 第一项的值
阅读全文
摘要:补题进度:9/10 A(多项式) 题意: 在一个长度为n=262144的环上,一个人站在0点上,每一秒钟有12的概率待在原地不动,有14的概率向前走一步,有14概率向后走一步,问t秒后这个人在x点的概率是多少,结果模998244353
阅读全文
摘要:补题进度:8/10 A(组合计数) 题意: 一个人站在数轴原点,每秒有1/4概率向前走一步,1/4概率向后走一步,1/2概率不动,问t秒后在p位置的概率。 t,p<=100000 分析: 枚举不动的个数,于是向前走的个数和向后走的个数都确定了,然后就可组合计数了。 B(平面图k小割) 题意: 给出一
阅读全文
摘要:题意: 定义F(x,p)表示的是一个数列{y},其中gcd(y,p)=1且y>x 给出x,p,k,求出F(x,p)的第k项 x,p,k<=10^6 分析: 很容易想到先二分,再做差 然后问题就变成了[1,x]内有多少个数是和p互质的 我们可以先将p质因数分解,然后用这些数组合去在[1,x]容斥就行了
阅读全文
摘要:A、B、C 略 D(dfs+强连通分量) 题意: 给出一个n(n<=500)点m(m<=100000)边的有向图,问能否通过删去一条边使得该图无环。 分析: 最简单的想法就是枚举一条边删去然后判断图是否有环,这样是O(m^2)的不能接受 仔细想想,如果图中环数<=1,则YES;如果图中环数>=2,那
阅读全文
摘要:寒武纪camp网络测试赛 地址:oj点我进入 A(树形dp+树链剖分) 题意: 分析: 考虑树形dp,f0(x)和f1(x)分别表示以x为根的子树,不取x点或取x点的最大合法子集的元素个数 那么对于一个询问来说,答案就是max(f0(x),f1(x)),我们的任务就是对于每次修改操作维护所有f数组的
阅读全文
摘要:地址:https://www.nowcoder.com/acm/contest/36#question A(前缀和) 分析: 先求个前缀和,统计以i为右端点的区间个数,那么从左到右枚举i,对于每个i,希望找到一个j(j<i),使得s[i]-s[j]是完全平方数,因为完全平方数最多就1000个,所以我
阅读全文
摘要:题意 给出一个长度为n的字符串的sa数组,n<=1e5,问有多少种不同的字符串的sa数组正好是输入的sa数组(字符串每个位置都是小写字母) 分析 sa数组描述的是字符的大小关系,而不是确切的字符,所以我们考虑位置的逻辑关系 首先一定有s[sa[i−1]]<=s[sa[i]] 但是对于那些$ran
阅读全文
摘要:题目 https://www.nowcoder.com/acm/contest/4/B题意 有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的上岸点和西岸的下水点之间距离最大是多少? 分析 其实就是求南北方向位移的最大值 如果给定在一条河里的
阅读全文
摘要:题目: 分析: 对于一个确定的生成子图,很明显是在一个连通块上走,走完了再跳到另一个连通块上,假设连通块个数为cnt,那么答案一定是min(acnt−1,acnt,..,an−1) 那现在的问题就是如何求出对于原图而言,连通块个数分别为1,2..n的生成子图的个数 我们去考虑每条边
阅读全文
摘要:补题进度:9/13 1001 待填坑 1002(数学推导) 题意 有一个按顺序的n个点的k叉树,问每个点子树个数的异或和是多少(n,k<=1e18) 分析 可以先求出最大的d,满足d以上都是满K叉树,最后一层是一些零散的点 然后枚举每一层,每一层的点分为三种,一种是最下面的孩子深度是d+1,一种是部
阅读全文
摘要:补题进度:7/11 1001(模意义下的卷积) 题意: 给出长度<=50000的两个数组A[] B[],保证数组中的值<=50000且A[]中数字两两不同,B[]中数字两两不同 有50000个询问,对于每个询问k,你需要回答有多少对(i,j)满足A[i]%B[j]==k,你只需要回答答案的奇偶性就行
阅读全文
摘要:补题进度:10/11 1001(不等式) 根据题意列不等式,解一解就行了 1002(套路) 题意: 给定一个随机产生的1e6*1e6的矩阵和一个1e3*1e3的矩阵,你要回答这个1e3*1e3的小矩阵出现在大矩阵的哪个位置 分析: 每隔1e3行 1e3列去建立一个check矩阵,看看这个check矩
阅读全文
摘要:补题进度:7/11 1001 待填坑 1002 待填坑 1003(set) 题意: 给定长度为n(n<=5e5)的数组(是n的一个排列)和一个整数k(k<=80),f[l,r]定义为区间[l,r]内的第k大的数,求所有区间的f值的和 分析: 倒过来考虑,考虑每个数a[i]对答案有多少贡献 将n个数字
阅读全文