03 2021 档案

摘要:比如食物链中,更新时就是模3,需要找到权值之间的规律 另外还有一种方法,就是建立三倍的并查集,第一个并查集是A, 第二个并查集是B,第三个并查集是C,输入关系时,把同类和天敌输入,可以利用并查集的传递性,A->B B->C可以传递到关系C->A 这也正是题目所希望的 其次,建立集合时,关系是对称的, 阅读全文
posted @ 2021-03-17 00:35 大W 阅读(29) 评论(0) 推荐(0)
摘要:#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn = 100005; int f[maxn][20], logn[maxn], n, m, a[maxn]; void p 阅读全文
posted @ 2021-03-17 00:20 大W 阅读(23) 评论(0) 推荐(0)
摘要:引用:https://blog.csdn.net/qq_30115697/article/details/88906534 要注意观察题目是否可以转化成该模型 只要能转化成卡特兰数的基本模型, 就能使用该公式,便捷解题 利用基本模型的推导 想出递推公式后进行的推导 阅读全文
posted @ 2021-03-14 17:25 大W 阅读(37) 评论(0) 推荐(0)
摘要:通常以递归的形式进行计算,由于树有着优良的递归性质 树上的背包问题 时间复杂度为O(nk) 一般而言代码是这样的形式 阅读全文
posted @ 2021-03-14 16:26 大W 阅读(33) 评论(0) 推荐(0)
摘要:经典例题 由于是环形,所以我们倍长序列,即4 5 9 4 变成 4 5 9 4 4 5 9 4 定义f[i][j]为区间[i,j]取的最大(最小)值,此时答案变为f[i][i +n - 1]中的最小值,i=1.....n 阅读全文
posted @ 2021-03-07 20:48 大W 阅读(50) 评论(0) 推荐(0)
摘要:背包问题初始化的一个小技巧,各种背包都可以用 01背包常数优化 即后面(i…n)的所有物品都被装入背包后,剩余的空间仍然比 Ci 大。考虑到f[j]定义为容量为j的背包,装入前i种物品(不需要装满)的最大价值。若剩余空间比ci大,则此时f[ci]....f[v-sum(wi+1.....wn) - 阅读全文
posted @ 2021-03-05 20:42 大W 阅读(53) 评论(0) 推荐(0)