摘要:
没有固定解法,主要是积累思路 Sergey's problem 先弱化,考虑DAG,发现直接贪心可以做到只走一步 考虑有环图,DAG的做法会出现选点集有连边,探究选点集的关系,发现\(y\to x\)一定有\(x\)先于\(y\)选取,存在偏序关系,则选点集会形成DAG 这就变成了弱化问题,再做一遍 阅读全文
摘要:
K-D Tree 细节 KDT和树套树并非等价,树套树一般是时间\(O(n\log^2n)\),空间\(O(n\log n)\)的,KDT是时间\(O(n\log n+n\sqrt n)\)(修改+查询),空间\(O(n)\) 子树递归时,值域越界判断不要像线段树一样写\(L<=mid,R>mid\ 阅读全文
摘要:
交互题是通过程序与交互库进行交互,来解决问题的题型,大体上分为3类: 1、假的交互,把从文件读入数据变成从交互库读入 2、IO交互, 3、看不到输入数据,只能通过有限次调用交互库的函数,来找到数据的性质并解决问题(有点像猜谜 linux环境下交互题编译 采用双编译:g++ -o prog.exe p 阅读全文
摘要:
常用于图论计数 Matrix-Tree定理 BEST定理 LGV引理 P7736 [NOI2021] 路径交点 说是LGV引理的模板 LGV引理 DAG上,从长度为\(n\)的集合\(A\)到\(B\)的不交路径数,发现和LGV很像(注意这里的不交是指不过同一结点) 又看到“偶数个交点的方案数-奇数 阅读全文
摘要:
平面向量 凸包 旋转卡壳 半平面交 半平面:一条直线分开一个平面成两半,其中一半就是半平面 算法:按辐角大小排序,插入半平面是用双端队列维护 \(p.s.\) O2会有精度误差,真的奇怪 随机增量法 最小圆覆盖 题目 P2603 [ZJOI2008] 无序运动 发现相同的轨迹可以用相邻两向量的旋转角 阅读全文
摘要:
如题,这是数学推式子中很重要的思想 容斥 常规容斥 常用容斥统计方法为:设\(f(S),g(S)\)两组相反的概念(一定选--可以选,全部合法--钦定不合法等),有: \[g(S)=\sum_{T\subseteq S}f(T)\iff f(S)=\sum_{T\subseteq S}(-1)^{| 阅读全文
摘要:
注意事项 关于spj 具体格式在说明书里 注意自定义比较器为.exe文件,路径是从\data开始的(如b题的spj为b\spj_cpp.exe) 交互 交互库为.h文件,实现接口为grader.cpp,有一些把grader.cpp的内容写进.h文件的,创建一个空的grader.cpp一起双编译即可 阅读全文
摘要:
P6772 [NOI2020] 美食家 很简单的一道题,但是实现的时候需要一些优化 我最初的想法是,压入今后\(5\)天的状态,然后矩乘转移,对于不同美食节,断开特判即可 写的时候非常sb地把活动前\(5\)天的转移矩阵拿出来修改,后面发现只需要活动结束后改\(ans\)即可 时间复杂度\(O(k( 阅读全文
摘要:
静态维护凸包 动态维护凸包 Splay平衡树 维护每个点向左、向右的线段的斜率\(lp,rp\)(初始为\(INF\)和\(-INF\)方便插入) 插入一个点时,先加入Splay,再向左右找到最接近的,可与新点形成新的凸包的点,把中间点删掉,更新\(lp,rp\)即可 具体实现:code cdq分治 阅读全文
摘要:
P3813 [FJOI2017]矩阵填数 常见思路:最大值为\(v\)方案数\(=\)最大值\(\le v\)的方案数\(-\)最大值\(<v\)的方案数 但是在这里有多个矩形,直接做会有问题,因为非法方案应该是存在一个矩形最大值\(<v\),看\(n\)的范围想到容斥 上公式:\(\display 阅读全文