返回顶部
摘要: 题意:有一长度为奇数$n$的数组$a$,和长度为$m$的数组$b$,现要求从$b$中选择一个数放到$a$中,并将$a$分成$(n+1)/2$个数对,求最小的所有数对差的和. 题解:我们从$b$中选一个数出来,只和$a$中的一个元素配对,剩下的依然是$a$中$n-1$个数两两配对,所以我们可以先求个前 阅读全文
posted @ 2020-11-02 21:43 Rayotaku 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意:RT,给你四个数$a,b,c,d$,求$x+y+z=k$的方案数. 题解:我们可以先枚举$x$的值,然后$x+y$能取到的范围一定是$[x,x+b]$,也就是说这个区间内每个数都有一个贡献,所以我们可以通过枚举$a$并且利用差分来求出$x+y$的贡献,然后再复原前缀和,同理再枚举$x+y$,即 阅读全文
posted @ 2020-11-02 14:46 Rayotaku 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个长度为奇数$n$的序列.你可以对任意元素加上$k$次$1$,求操作后的中位数最大. 题解:先对序列进行排序,然后对中位数相加,如果中位数和后面的元素相等,就对后面所有和当前中位数相等的元素++,然后再对中位数++,不断往复这个过程就好了,具体看代码. 代码: int n; ll k; 阅读全文
posted @ 2020-11-02 12:49 Rayotaku 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个$n$x$m$的矩阵,可以对矩阵的所有元素进行$\pm d$,问能否使得所有元素相等. 题解:我们可以直接记录一个$nm$的数组存入所有数,所以$(a_1+xd)=(a_2+yd)=...=(a_{nm}+zd)$,我们但看任意一个等式可得:\(a_{x}+nd=a_{y}+md\), 阅读全文
posted @ 2020-11-02 12:41 Rayotaku 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一颗树(边是无向的),从根节点向下走,统计走到每个子节点的概率,求所有叶子节点的深度乘上概率的和. 题解:每层子节点的概率等于上一层节点的概率乘$1$除以这层的子节点数,所以我们用$dfs$或者$bfs$都可以写,其实就是个搜索裸题,注意给的边是无向的就好了. 代码: 1.dfs: int 阅读全文
posted @ 2020-11-02 10:57 Rayotaku 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个长度为$n$的升序序列,将这个序列分成$k$段,每一段的值为最大值和最小值的差,求$k$段值的最小和. 题解:其实每一段的最大值和最小值的差,其实就是这段元素的差分和,因为是升序,我们可以先求出差分数组,然后再对差分数组排序,因为我们可以分成$k$段,所以会有$k-1$个断开的'缝隙' 阅读全文
posted @ 2020-11-02 10:49 Rayotaku 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意:给你$n$个点,求这$n$个点中,曼哈顿距离和欧几里得距离相等的点对数. 题解: 不难发现,当两个点的曼哈顿距离等于欧几里得距离的时候它们的横坐标或者纵坐标至少有一个相同,可以在纸上画一画,当两点不满足上文所说的情况时,他们的曼哈顿距离一定大于直线距离,因为三角形的两边必定大于第三边,然后我们 阅读全文
posted @ 2020-11-02 01:34 Rayotaku 阅读(79) 评论(0) 推荐(0) 编辑