上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 原题链接 题解 这题用到的知识点很多, 思维+前缀异或+容斥原理。 1、题目告诉我们要找 被除数个数 是偶数个的异或和,那么什么数的 被除数 有偶数个? 答案:非完全平方数。 2、非完全平方数太多了,不好求。而我们又知道 所有序列 个数为(n+1)*n/2 所以我们只要求出序列异或和为完全平方数的个 阅读全文
posted @ 2024-08-07 14:10 黑屿白 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 首先,对于数字 i 如果location[ i ] < location[ i -1 ] 那么遍历次数需要+1,否则不变。 因此,对于交换的数字 x , y 而言,他们只能影响 x-1 , x+1 , y-1 , y+1 的遍历次数,只需要考虑有限的几种情况即可(需要特判 abs(x 阅读全文
posted @ 2024-07-31 20:40 黑屿白 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 树形dp的想法,递归返回的是子树的最大联合权值以及联合权值之和。 首先,根据题目意思可以知晓该无向图构成的是一棵树。 由树形dp的遍历可知,当我们来到 root结点时,其所有孩子结点的子树 最大联合权值 和 联合权值之和 都已经知晓,我们只需要对其取 max 和 累加 即可。 but 阅读全文
posted @ 2024-07-31 16:53 黑屿白 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 概念辨析 1、数学中最常见的欧氏距离 2、曼哈顿距离 他表示的点如下图 3、切比雪夫距离 他表示的点如下图 由图可以感觉曼哈顿距离和切比雪夫距离有一定的相似性 曼哈顿距离和切比雪夫距离的转化(45度旋转) 看着有点繁琐。 事实上: 将一个点 ( x , y ) 的坐标变为 ( x + y , x − 阅读全文
posted @ 2024-07-27 16:11 黑屿白 阅读(58) 评论(0) 推荐(2) 编辑
摘要: 原题链接 题解 前言:这题可以只调用一遍dfs。 首先,以颜色为color_u的u为根结点的子树内,颜色与u颜色相同的结点 不能与u的其余子树中颜色为color_u的结点相连接。 我们需要一个num数组,num[i]表示当前结点 i ,有多少个结点可以与他连接。 接下来,我们任取一个结点为根结点去跑 阅读全文
posted @ 2024-07-13 10:55 黑屿白 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 假设 sum 数组是从当最大边不超过 i 时边 C 的取值个数 遍历边 a,边 b当 a+b==r 时 ans+=a[r];此时时间复杂度为O(n*n) 优化:定义 s 数组是 a 数组的前缀和 则当b在B~C中遍历时,ans+=s[a+C]-s[a+B-1],优化一个O(n) co 阅读全文
posted @ 2024-07-11 10:49 黑屿白 阅读(9) 评论(0) 推荐(1) 编辑
摘要: cf链接 洛谷链接 方法一 最大最小值问题我们很容易想到二分答案法。那么我们如何写出check函数呢? 对于答案x,若x-i+1<a[i],则选定怪物一定不在 i 位置左侧,即L=i; 若x-n+i<a[i],则选定怪物一定不在 i 位置右侧,R=min(R,i)。 遍历数组,如果L<=R则答案符合 阅读全文
posted @ 2024-06-22 16:01 黑屿白 阅读(8) 评论(0) 推荐(0) 编辑
摘要: cf链接 洛谷链接 解法一 我们观察到每一次的分段会导致后面的分段的Li+1,也就意味着整个式子的答案加上了当前下一位置的后缀和。 即我们假设后缀数组为b,如果要在 i 位置分段,此时ans+=b[i+1];因此我们很容易得出如果 i 位置的后缀和>0则分段,否则不分段。 Ps:如果b[1]<0需要 阅读全文
posted @ 2024-06-22 15:40 黑屿白 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题解 首先,我们来学会如何判断在一系列线段中是否存在不相交线段。 我们选取所有线段中最大的左边界l_max和最小的右边界r_min,我们可以清楚的知晓当l_max>r_min的时候存在不相交线段(贪心的思想),否则不存在。 code #include<bits/stdc++.h> using nam 阅读全文
posted @ 2024-06-11 18:56 黑屿白 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 题解 dp数组的含义: dp[i]表示从i-n要删除几个数使得【i,n】的数组是优美的。 此时分两种情况: 1、删除当前位置的数,则dp[i]=dp[i+1]+1 2、不删除当前位置的数,则dp[i]=dp[i+a[i]+1] 因此转移方程为:dp[i]=min(dp[i+1]+1,dp[i+1+a 阅读全文
posted @ 2024-06-02 16:11 黑屿白 阅读(9) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页
点击右上角即可分享
微信分享提示