摘要:
题意:RT 题解:可以自己在纸上画画看,对于位置$i$的数$a[i]$,假如它目前的逆序对数为$c[i]$,进行一次冒泡排序后,它前面最大的一个数必然会移动到它的后面去,所以可以推广到:冒泡排序$k$次后,逆序对个数变为$c[i]-k$.那么对某一状态的排列冒泡$k$次后,逆序对个数$\le k$的 阅读全文
摘要:
传送门 分析:对于给出的邻接矩阵,用并查集维护牧场,并求两点的距离,然后对所有点跑一个floyd(因为只有连通的点我们才求了距离,所以可以直接对所有点跑),对于一个牧场,我们可以求出它里面每个点到其他点的最远距离,以及牧场的直径,那么我们再去枚举任意两个点,如果它们不在一个集合内,那么可以得到这两个 阅读全文
摘要:
题意:有两个长度为$n$的数组$a$和$b$,你可以对$a$的子数组反转一次,问你$\sum_^a_i*b_i$的最大值. 题解:一眼区间dp的题目,对于长度为$len$的子区间$[l,r]\(,它可以从\)[l+1,r-1]$转移过来,那么我们设$dp[i][j]\(为子区间\)[i,j]$能得到 阅读全文
摘要:
题意:有一个长度为$n$的排列,A和B进行博弈,每次操作可以在当前数$a_i$的基础移动到另一个位置,但是新的位置上的数$a_j>a_i$且$|i-j|$ mod \(a_i\)=0.A先手,问你所有$[1,n]$的情况中,A从$i$开始的结局情况. 题解:因为$a_i$每次只能移动到比自己大的数的 阅读全文
摘要:
题意:给你$n$个数,每个数都有$3$~$5$个因数,问你将这$n$个数累乘后的因子数. 题解:对于求约数个数,很容易想到唯一分解定理:\(x=p_1^{a_1}*p_2^{a_2}*...p_k^{a_k}\),然后就能计算出因子数:\((a_1+1)*(a_2+1)*...(a_k+1)\).但 阅读全文
摘要:
题意:给你$n$个升序的点,问你是否能构造一颗二叉搜索树,且每个儿子节点和父节点的$gcd>1$. 题解:首先可以预处理每两个点之间的$gcd$,我们先考虑暴力的写法,设$dp[l][r][k]\(表示区间\)[l,r]$以$k$为根节点是否合法,那么如果$dp[l][r]k]$要合法的话,其左儿子 阅读全文
摘要:
题意:有一只老鼠,有$n$个位置,刚开始老鼠可能出现在任意位置,然后每次跑去第$a_i$个位置,如果$i=a_i$那么它就会停下,你可以在第$i$个位置花费$c_i$放置老鼠夹,你想要话费最小的代价来保证能抓到老鼠,问最小代价是多少. 题解:我们可以把数组$a$抽象成一张有向图,容易发现,对于一条链 阅读全文
摘要:
题意:一长度为$n$的序列,有$m$个限制条件,问有多少排列方法使得题目所给的$m$个限制条件都满足. 题解:$n$给的范围很小,我们可以状态压缩,$v[num][j]$表示题目所给的限制条件前$num$个数最多不大于$y$的个数,我们可以枚举所有情况,然后判断每个状态是否和题目所给的条件冲突,如果 阅读全文
摘要:
题意:给你$n$个数,有$q$个询问,每次询问一个区间,问你这个区间至少要分成多少个子区间,使得每个子区间的所有元素乘积等于它们的$lcm$. 题解:因为$lcm(x,y)=\frac{x*y}{gcd(x,y)}$,推广一下不难发现,要满足题目条件的话,区间内所有元素的$gcd=1$.即不能有公共 阅读全文
摘要:
题意:有一个$n$x$m$的矩阵,相邻点之间都存在边权,每次可以移动到相邻点,问你每个点移动$k$次后并回到该点的最短边权和. 题解:如果$k$是奇数的话,一定不能走回到自己,因为线段来回来走两次或走一个矩阵,他们的边长和都是偶数.$dp[i][j][k]\(表示点\)(i,j)$走$k$次后回到自 阅读全文