上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 81 下一页
摘要: 打卡代码有注释 update 2024.7.15 如果用树上直接统计做,那么就要用\(f[v][0/1]\)表示已经/正在遍历过的子树长度为\(v\)的最短路径条数是多少,然后更新答案;注意在即将遍历下一棵子树的时候,我们要用这棵子树(当前的\(f[v][1]\))去更新\(f[v][0]\),但不 阅读全文
posted @ 2024-02-26 23:25 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这个解法就看看OI-wiki的解法就好了,用的是树上直接统计(代码就看洛谷提交的,有注释) 再解释一下这个代码。每一次进入dfs的时候,这个dfs代表的点是当前所选树的根节点,在之后,我们“删除”这个根节点会将树分成若干个连通块,我们再递归地对连通块进行操作。“删除”之所以打引号,是因为自始至终我们 阅读全文
posted @ 2024-02-26 23:09 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 莫队模板题,考虑如何\(O(1)\)更新 阅读全文
posted @ 2024-02-26 16:59 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这个看OI-wiki就好了,写的很清楚 讲一下OI-wiki上面代码的一些细节 首先是第\(51\)行到第\(78\)行的\(L,R,last\)的改变,\(L,R\)的改变顺序是无关紧要的,但是\(last\)一定要在\(L,R\)修改完后再改变,因为要用到真正的\(L,R\)的值来判断范围 其次 阅读全文
posted @ 2024-02-26 16:37 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: OI-wiki上面关于莫队的介绍都可以看一下(特别是算法模板),这里介绍一下莫队算法时间复杂度的证明,OI-wiki那个有点看不懂 接下来设序列总长度为\(n\),询问为\(m\),块长为\(L\) 首先来看左端点移动总次数,设某个块的询问个数为\(x_i\),那么这个块内左端点移动的总长度为\(O 阅读全文
posted @ 2024-02-26 15:51 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 这道题目的思想非常新 首先我们按照比较传统的想法,考虑交换两个位置\(i\)和\(j\)能带来什么影响 然后这就是这道题目的精华所在了,我们考虑影响的时候,没有必要去精确每一个位置的两个信息(左边更大的数的个数和右边更小的数的个数)怎么样变化,而是只用考虑这一次交换会让答案增大多少(其实重新做这道题 阅读全文
posted @ 2024-02-25 22:18 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这里肯定考虑每个点作为lca对答案的贡献 考虑点\(p\),所代表的区间长度为\(l\),那么其左右两个子树的叶子节点一定至少选一个,即贡献为$$p \times (2^{\lfloor \frac{l}{2} \rfloor}-1)\times (2^{\lceil \frac{l}{2} \rc 阅读全文
posted @ 2024-02-25 21:42 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 使用观察样例法,观察一下数据,发现可能是\(max(n,m)\) 证明这是下界,如果更少,我们假设列更多,那么根据鸽巢原理,至少有一列没有政府建的城市,那么这一列肯定不可能有城市重建 然后我们可以找到一种方案:\((1,1),(2,2),...,(n,n),(n,n+1),(n,n+2),...,( 阅读全文
posted @ 2024-02-25 19:45 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 一道类似的题目 代码写的有了,但是没有考虑负的贡献 阅读全文
posted @ 2024-02-25 16:35 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 这篇题解可以看看(洛谷第一篇) 讲下我的做法 首先发现对于最终的序列,任意两个数(设为\(x\)和\(y\))之间一定不会存在一个比两个数都小的数被删除,不然的话,我们设\(x\)和\(y\)之间最小的数为\(p\),那么某个区间删除\(p\)的时候一定会同时把\(x\)或\(y\)的某一个数删除 阅读全文
posted @ 2024-02-25 10:35 最爱丁珰 阅读(10) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 81 下一页