09 2022 档案
摘要:原题链接 dp+矩阵加速 明天再来写 #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; #define fr first #define se second #define et0 exit(0); #defin
阅读全文
摘要:原题链接 妙妙树形dp 当$u$不选时,$u$的子节点个数为奇数还是偶数都可以 当$u$选时,$u$的子节点个数必须为偶数 这样可以搞一个状态总数为$N22$或者$N*2$的dp(前者更好理解) #pragma GCC optimize(2) #include<bits/stdc++.h> usin
阅读全文
摘要:待补 6题的时候离金还挺近的,看到那个差分约束瞬间想起来在acwing(或者洛谷)做过同样的题,然而死活回忆不出具体解法… B Bracket Query 参考博客 设$s[i]$为$1到i$中左括号减去右括号的数量,根据题意 $$ \forall i,s[i]\ge 0\ \forall i >
阅读全文
摘要:原题链接 给定一个矩形(宽$W$,高$H$)和若干个点的坐标,求这个矩形能框住的点的权值和最大为多少。 把矩形右上角的点设为$D$,对于某个点$u$,当且仅当$D$在$(x_u, y_u)$和$(x_u + W - 1, y_u + H - 1)$所构成的矩形中时,点$u$才能被框住 问题就转换为了
阅读全文
摘要:原题链接 第一维直接排序,然后cdq分治+树状数组 对于分治的左右区间,区间内部按照第二维排序(已按第一维排序好了,就算打乱顺序,左右区间整体的第一维的偏序关系也不会受到影响) 然后遍历右区间的元素,把左区间的第二维小于当前元素的加入树状数组,统计答案即可,因为区间内部第二维都是单调不递减的,只需遍
阅读全文
摘要:原题链接 每次询问都对整棵树dp的话会超时,发现询问的点总和较少,可以每次询问都建立一棵虚树,对这棵虚树进行dp 建立虚树就是只保留对答案可能有贡献的结点,即保留目标岛屿和目标岛屿的lca #include<bits/stdc++.h> using namespace std; #define fr
阅读全文
摘要:原题链接 发现枚举$gcd(a,b)$的值时间复杂度最优,因为$a+b=kgcd(a,b) (k=2,3,4...)$,这样的话总的枚举次数就是调和级数,所以外层枚举的复杂度为$O(nlogn)$,问题转化为怎么快速得到同时满足$gcd(a,b)=i$和$a+b=ki$这两个条件的$(a,b)$数量
阅读全文

浙公网安备 33010602011771号