返回顶部
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 52 下一页
摘要: 题意:给你一个长度为$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) 编辑
摘要: 题意:有一个从根节点$BFS$得来的序列(每次$bfs$子节点的时候保证是升序放入队列的),现在让你还原树(没必要和之前相同),问能构造出的最小的树的深度. 题解:不看根节点,我们从第二个位置开始,如果某一段元素升序,那么就让他们变为上一层某个结点的儿子,否则,如果上一层还有另外的父节点的话,就作为 阅读全文
posted @ 2020-10-28 23:31 Rayotaku 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题意:有$n$个菜在烤箱中,每个时刻只能将一个菜从烤箱中拿出来,第$i$个时刻拿出来的贡献是$|i-a[i]|$,你可以在任意时刻把菜拿出来,问将所有菜拿出的最小贡献是多少? 题解: 先对所有菜从小到大排序,因为$a_i$单调,我们可以枚举时刻$[1,2*n]$来进行DP,先更新第一道菜的状态,然后 阅读全文
posted @ 2020-10-28 20:51 Rayotaku 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个$2$X$n$的矩阵,你想从$(1,1)\(走到\)(2,n)$,每次可以向上下左右四个方向走,但在某些时间段某个点会被堵住,如果已经被堵住,那么即恢复正常,每次对某个点操作,操作后询问是否能走到终点. 题解:只有当第一层和第二层被堵的点连通时才会到不了终点,比如$(x,y)\(和\){ 阅读全文
posted @ 2020-10-27 19:14 Rayotaku 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 题意:给你四组长度为$n$序列,从每个序列中选一个数出来,使得四个数字之和等于$0$,问由多少种组成情况(仅于元素的所在位置有关). 题解:$n$最大可以取4000,直接暴力肯定是不行的,我们可以先对后两个数组$c$和$d$,枚举他们每个元素的和,用一个新数组$CD$记录,然后再去枚举$a$和$b$ 阅读全文
posted @ 2020-10-27 19:02 Rayotaku 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题意:有长度$n$的序列,让你构造序列,使得二分查找能在$pos$位置找到值$x$.问最多能构造出多少种排列? 题解:题目给出的$pos$是固定的,所以我们可以根据图中所给的代码来进行二分,确定有多少数小于$x$和大于$x$,然后根据排列组合即可算出答案. 代码: int n,x,pos; ll f 阅读全文
posted @ 2020-10-26 21:17 Rayotaku 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一组数,选一些数出来组成一个排列,使得每个数都能被前一个数整除,求排列的最大元素. 题解:我们先用欧拉筛筛出$1e7$的质数,设$dp[i]$表示当前选的数都是$i$的约数且合法的最大元素值.所以我们可以用$dp[i]$去更新$i$的倍数的$dp$值,我们可以靠枚举$i$的素数倍来降低复杂 阅读全文
posted @ 2020-10-26 20:56 Rayotaku 阅读(201) 评论(0) 推荐(1) 编辑
摘要: 题意:给一个$nXm$的矩阵,可以选取$aXb$的子矩阵,使子矩阵中的所有元素减一,问最后是否能使矩阵中所有元素变为$0$. 题解:首先贪心,我们看最左上角的元素,如果$g[1][1]\ge0$,那么我们就要对其子矩阵的所有元素减去$g[1][1]$,然后因为$g[1][1]$已经是$0$了,假如$ 阅读全文
posted @ 2020-10-26 19:33 Rayotaku 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:给你两个长度相同的数组,每次从两个数组中选数(也可以不选),但是不可以在同一个数组中连续选两次,问能选的最大值是多少? 题解:dp,$dp[i][0]$表示第$i$个位置不选,$dp[i][1]$表示第$i$个位置选第一个数组的数,同理$dp[i][2]$就是第二个,不选的话,$dp[i][0 阅读全文
posted @ 2020-10-24 20:10 Rayotaku 阅读(92) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 52 下一页