- 博客(4)
- 收藏
- 关注
原创 23.1.11
注意到前11个素数的乘积已经大于2e9了,所以就枚举前10个素数,对次方进行dfs。因为g(x)>g(i),所以dfs时,若碰到约数个数相等时,需要对答案取min;2,lower_bound,upper_bound详细用法;2,关于lower_bound upper_bound的用法;lower_bound:找到第一个>=num的数。lower_bound:找到第一个num的数。upper_bound:找到第一个
2023-01-11 12:57:32 45
原创 23.1.7
理解记忆find函数即可;注意st[j]=1的位置;是搜到过该节点就标记;不是一定匹配到了才标记!思路:步长由1到n逐步递增,桶按容积排序去重,排序是为了题目要求最优解,去重方便dfs;最终桶的数量很小,只有100;所以可以用迭代加深来做;1,牛奶量取(dfs迭代加深);2,匈牙利算法-二分图匹配;对于迭代加深的使用场景:我们确定答案在一个比较浅的位置。搜到了答案就终止dfs即可。
2023-01-07 18:45:09 60
原创 22.12.24
之后遍历每个节点,然后遍历每个节点的子节点,如果dist[子节点]=dist[父节点]+w[父节点-子节点],说明该子节点就是最短路径上的点,就add(父节点,子节点,w[父节点-子节点]);个人理解:就是在无向图中,只保留每个点到源点的最短路径所形成的删减后的图,就是最短路树;先跑一遍dijk,求出来所有点到源点的最短距离;字典序最小就是从1到n遍历节点;
2022-12-24 00:11:22 46
原创 22.12.22
将靴子和地砖放在一起,从小到大扫,扫到地砖,用线段树维护最长不能走的地砖长度,扫到靴子,查询最长长度,如果不满足,则答案为0,否则答案为1;带等号就是最长不上升子序列;优化就是碰到相等的数就break;(在重复的数多的时候)但是要注意对每个子序列的 起点要赋初值1!2,线段树维护最长连续区间;注意pushup写法!就是a[i]>a[j]有无等号的区别与LIS;1,最长不上升子序列(最长不下降子序列);
2022-12-23 00:50:32 40 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人