摘要: 题意: $sqrt$级的时间复杂度内求第k个大于x且与p互质的数。 题解: #include<bits/stdc++.h> using namespace std; const int maxn=1e6+100; int tot,vis[maxn],mu[maxn],sum[maxn],pr[max 阅读全文
posted @ 2021-03-27 13:10 zlc0405 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树,请你支持三种操作: (1)指定v为根节点 (2)给出u v x,将LCA(u,v)的子树加上x。 (3)求u的子树权值和。 题解: 换根的过程中维护子树,不能真的换根,尝试分类讨论根的位置,在原树上处理出当前树形下节点的子树区间。 //换根 //u v x,求LCA(u,v),把 阅读全文
posted @ 2021-03-27 12:47 zlc0405 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一棵树,请你为每个点确定一个圆(圆心坐标和半径) 这里要求: 圆心坐标和半径必须是整数,同时每个圆没有交点,同时每个点的圆必须包含它的子树的圆。 题解: 树形DP,DP的时候处理出每个叶子到根的路径上第一个有前驱兄弟的节点,这个叶子的圆心坐标确定了,它的祖先的坐标也就确定了。 #incl 阅读全文
posted @ 2021-03-27 10:48 zlc0405 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个初始矩阵,和n个不同的中间矩阵,每次询问初始矩阵从第a个矩阵乘到第b个矩阵的答案。 题解: 用线段树维护矩阵乘法,矩阵乘法不存在交换律,只存在结合律,这回刻到DNA里了。(这里询问包含两个方向,所以要开两颗线段树维护) #include<bits/stdc++.h> using na 阅读全文
posted @ 2021-03-27 10:21 zlc0405 阅读(72) 评论(0) 推荐(0) 编辑