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