上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 前置知识 树形dp,时间复杂度分析(最重要) 思路 有一个非常简单的思路,最直接的做法是设 \(dp_{u,i,0/1,0/1}\) 表示树上的第 \(u\) 个节点内,放了 \(i\) 个设备,\(u\) 放没放设备,\(u\) 有没有被监视的方案数。 转移也非常简单对于 \(dp_{i,j}\) 阅读全文
posted @ 2025-03-25 14:57 exCat 阅读(16) 评论(0) 推荐(0)
摘要: 太巧妙了!自己做的时候完全没有思路,连题解都看了好久。 前置知识 树,dp 思路 最开始完全不会的原因是想要正向的做,统计所有的方案的贡献,这个确实完全做不了,又是 \(dfs\) 序又是前缀最大值不好统计。所以我们从答案入手,我们发现求本质不同的前缀最大值序列,我们可以设 \(f_i\) 表示以 阅读全文
posted @ 2025-03-25 10:28 exCat 阅读(33) 评论(1) 推荐(1)
摘要: Day0 做火车加吃饭加玩 Day1 考试日。 第一次考试,感觉它的题可能没有NOI的难度,但是比NOIP的难。 T1 第一题有一个非常没有用的题目背景,我甚至理解很久,感觉毫无意义,以后还是直接看题。一开始并没有思路,还是先研究它的部分分首先发现有 \(n\) 特别小可以暴力枚举的部分,然后有 \ 阅读全文
posted @ 2025-03-23 20:23 exCat 阅读(15) 评论(0) 推荐(0)
摘要: 写在前面 这是一个让我又爱又恨的版块,每一次我学了可能就会,但是过不了多久就又不会了。所以每次重新遇到又要重新学一遍,平时只记得名字,特别菜。希望这次写完可以有一点提升。 数论函数 基本概念 数论函数:定义域为正整数的函数 加性函数:对于所有 \(\forall n,m\in N ^∗,\gcd(n 阅读全文
posted @ 2025-03-17 21:20 exCat 阅读(126) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-03-17 07:26 exCat 阅读(0) 评论(0) 推荐(0)
摘要: 写在前面 一个博主很早之前学的算法,只记录了自己的模板没写总结,导致在一场考试中,遇到原题但只能含泪写暴力,所以先趁热打铁来写一个博客。 简介 李超线段树,可能才是真正的线段树,因为它真的在记录线段。 用途是来解决一些插入直线/线段,支持查询单点极值的问题。 前置知识 线段树(不会就不用学了)和标记 阅读全文
posted @ 2025-03-16 21:54 exCat 阅读(89) 评论(0) 推荐(0)
摘要: T1 一直以为比较简单,所以在赛时思考了很久。异或肯定是tire树,但是按位或和按位与不好直接用,时间复杂度是假的(真实情况下暴力也能过)。然后看都了值域范围数值只能取到 \(2^{16}\) 所以觉得做法一定与值域有关,不让肯定会开到 \(1e9\) 。然后就想到是否可以对每种值开个数组存下答案, 阅读全文
posted @ 2025-03-16 19:38 exCat 阅读(17) 评论(0) 推荐(0)
摘要: 点分治 点分治,可能是一种针对可带权树上简单路径统计问题的算法。(也可能是因为博主理解的浅薄) 是分治思想在线段树上的体现。每次找树上的重心来计算跨过重心的答案就像序列分治每次统计跨过分治中心的答案。 前置知识 dfs,找重心以及树上的一些处理方法。 重心 重心就和我们的分治重心一样直接影响时间复杂 阅读全文
posted @ 2025-03-13 16:43 exCat 阅读(15) 评论(0) 推荐(0)
摘要: 前置知识 可持久化线段树 本质上只是可持久化数组 按秩合并 因为正常写并查集的路径压缩时间复杂度是均摊保证的,所以可以构造数据使可持久化后复杂度爆炸。 所以将并查集按秩合并,保证树长始终为 \(\log n\) 级别的。 只需要记录一下每个点的子树的深度,将小的合并到大的上。 void merge( 阅读全文
posted @ 2025-03-11 15:44 exCat 阅读(137) 评论(0) 推荐(2)
摘要: #include <bits/stdc++.h> using namespace std; const int N=1e6+10,M=39989; const double eps=1e-9; int lasans,cnt,n,sh[N]; struct stu { double k,b; }q[N 阅读全文
posted @ 2025-03-04 11:50 exCat 阅读(29) 评论(1) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页