自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 17周周总结

/反向存边 比如说一个v对应着多条边 那么g[i][0]=v1;//map[maxn][maxn]是否为0 能不能走得通 vist[maxn]=0是否走过 &&if(visit[i]==1) cnt[i]++;//总共有n个点所以一维就可以 visit[i]和cnt[i]有对应关系吗?//find(p[p[a]]) 递归都是n层复合函数。while(a[now]<s3 && now<n){ //n个点顶多n天 为什么是n啊?

2023-12-18 00:16:37 32 1

原创 周总结#7-DFS

/如果是已经到了最后一位数了就只用把path里面已经定好的路径输出就可以了。//用完了之后就标记为真 将要走到下一层下一层不可以用了哦 直到return 一切结束。//上下左右搜索 如果走到头了就回去 什么事走到头了 就是四个循环全都用完了 函数过完了 这时候回溯。path[u]=i;st[i]){ //找到一个没有被用过的数。

2023-11-27 01:23:31 23

原创 周总结#7-BSP

j=1~n 第一和最后一行的所有可以作为起始点 //i=1 j=1~n i=1+4=1=n=4 这不是直接 一个图像边缘的点就可以了吗?q.push(w);

2023-11-20 01:13:38 33 1

原创 周总结#6-背包问题

/从前往后 因为需要前面更新过的f[i-1][j-v[i]] f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]) //1 2 3 4 6.。//装得下的情况下 左边是上一个物品状态 右边是所有要装i的总共的最大 这些和f[i][j-v[i]]的最大值加一个w[i]相等 而这个f[j-v[i]]在i层算是在f[j]以前确定过了。//f[i][j-v[i]]的最大值+w[i]就是f[i][j]第一项往后之后的最大值 所以必须从前往后遍历体积。j++){ //从1开始是为什么?

2023-11-11 13:19:48 34 1

原创 周总结#4-dp

最长递增数列中除去后面的项的子数列,也一定是当前情况下的那个的最长递增数列,将比它小的所有点的最长数列都记录在一个数组里面,免去了算那些一定不可能的数列的时间。判断元素a[i]本身与元素加上b[i-1](前面序列的加数) 的大小 选出那个较大的 存到b[i] 最终得到的b是上述6个合法序列所有的和。合法答案 (2,-4)和(3,-1,2,-4) 因为有-1比有3 所以有则2必有前面两个 -4同样。所以 答案会是(2,-4)(3,-1)(3,-1,2)(3,-1,2,4)(2)(3)中最大的。

2023-11-05 20:40:12 21

原创 双周赛题解

观察到对于相同下表P,进行一次线性变换的得到的下标P‘’是相同的,因此在百年换过程中,下标P的值一定是经过某一段区间后循环重复出现的并且循环节的长度一定不会超过n,我们只需要模拟前n+1次操作,即可得出循环节的长度以及每一次循环产生的贡献,这是,只需要计算在T轮操作内出现多少次循环即可快速计算出整块循环的答案,对于剩余的部分,可以通过之前维护的值直接算出,也可以通过模拟在O(n)的时间内算出,总体时间复杂度O(n)这道题的第一个数一定是分子,第二个数一定是分母,能成为整数那就是分子除以分母能出的开;

2023-11-05 19:45:37 27

原创 周总结#3-递推

后面的数等于前面的数相加得到,这是一种复合类斐波那契数列的模型。使用斐波那契数列或者类似斐波那契数列这样前面相加得到后面的数列的时候,这种数列的增长速度一定是很快的,所以该开高精度的时候就开高精度。

2023-10-29 16:32:01 42 1

原创 W2-贪心算法

1 while(a[i]<a[mid])错误 因为如果想这道题案例里面 第一斌i就扫到了mid的位置并a[i]a[j]交换元素,导致a[mid]是一个变量,最后无法保证ij碰上的时候,一面是小于某个值的另一边是大于某个值的,这个值本身都不统一 所以一定先把a[mid]在循环之前就付给一个变量 然后用a[i]a[j]拿他作比较。永远在当前情况下,挑选最优的两个值(最小的两个权值,最短的接水时间),最优解排序,末尾的乘路径较少,越优越多,强弱均衡最后会得到最小值。

2023-10-22 17:57:08 28 1

原创 洛谷-P1824 进击的巨牛

我们也许很难以数学的方式说清具体哪种情况(我一开始就受到高红数学影响认为最优解要尽量吧距离分配得平均 但是写出来了一个tle的)为解 但是我们可以得到每一种情况。关于判断最优解 由于这道题的特殊性 就是最短里面的最长 所以我们可以根据解中最小距离的(我们的所谓解是就是这个最小距离)排序判断 所有解进行排序 最大的那个。那么我们的思路就可以更加直观了 直接先把所哟的最小距离可能庆康排一个序 划定一个解的范围 直接从那个范围里面找最大的就好了。//这个是肯定不会往里面放牛的牛棚。思路理清了 就开干 塔塔开!

2023-10-15 23:49:17 79

原创 洛谷-P2249 【深基13.例1】查找

/在x的右边//保证最后mid是靠左边的那个纸 主要是不允许左边任何小于等于的存在。但是注意当某个数在一个有序数列里面重复出现的话,(13335)查找333最左边3的位置和最右边3的位置代码不一样。而是某个界左边必然更小,右边必然更大(某个界的左右必然分别满足两个性质)左边的话=要和>写在一起 表示"不允许任何小于等于x的存在"思路理清了 本大爷要发代码啦!单调数列查找,用二分的思路。

2023-10-15 23:38:42 72

原创 洛谷-P1226 【模板】快速幂

这个过程就像是a在不停地乘方变大,然后其中因为幂是奇数多出来的单独领出来乘ans最后最后当幂变为1时,a也*ans,ans就是领出来的*a,其中每一项都是p的模。其实每次除以2的过程就是二进制数移位的过程,如果位1的话直接走if后面的,如果是0的话就走if里面的,所以我们也可以吧b当做二进制数来做。a的b次方如果用编程解决,最基础的就是采用循环,这个时间复杂度是o(b),当b比较大的时候,会超时。

2023-10-15 23:29:26 66

原创 洛谷-P8682[蓝桥杯 2019 省 B] 等差数列

为简化求最大公因数的过程,可以先将子数列从小到大排序,省去更大的差的情况。题干中两个条件: 1 等差;2 最短(要求公差是最大的那个情况);公差知道了,通过输入数列中的第一项和最后一项,就可以知道最短项数。数学上很容易证明一个等差数列的子数列之间的差值是公差的整数倍。嗯 那个n不放全局即使思路代码除此之外没有问题,也会WA。思路理清了 开干 塔塔开!所以原数列的公差就是子数列中所有数的最大公因数。

2023-10-15 23:13:27 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除