摘要: P3354 [IOI2005]Riv 河流 这是一道比较好的树型DP,在参考了网上的一些题解后,蒟蒻终于把它给做了出来 可以看到这道题如果只用二维表示状态明显是不够的 所以设状态$f_{i,j,k}$表示$i$为根节点,$j$为它的一个建有伐木场的父节点,$k$为$i$与它的子树共建的伐木场的数量 阅读全文
posted @ 2021-02-05 09:13 DSHUAIB 阅读(106) 评论(0) 推荐(0) 编辑
摘要: CF149D Coloring Brackets 一道很有意思的区间DP 我们用0表示不染色,1表示红色,2表示蓝色 定义状态$f_{i,j,k,u}$表示将合法序列[i,j]染色且$i染为k,j染为u$的方案数 那么序列就可以分为三种情况 1°:() \(f_{i,j,0,1}=f_{i,f,1, 阅读全文
posted @ 2021-02-04 11:07 DSHUAIB 阅读(60) 评论(0) 推荐(0) 编辑
摘要: P4056 [JSOI2009]火星藏宝图 这道题很容易想到$O(n^2)$的暴力做法,但仔细思考一下,可以发现对于每一列的可转移的岛,行数大的一定比行数小的更优. 不妨假设这两个岛的坐标为$(x_1,y),(x_2,y)(x_1 < x_2 \le x)\(,当前的岛的坐标为\)(x,y)$ \( 阅读全文
posted @ 2021-02-03 21:18 DSHUAIB 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念 1.1 流网络,不考虑反向边 1.2 可行流,不考虑反向边 1.2.1 两个条件:容量限制、流量守恒 1.2.2 可行流的流量指从源点流出的流量 - 流入源点的流量 1.2.3 最大流是指最大可行流 1.3 残留网络,考虑反向边,残留网络的可行流f' + 原图的可行流f = 原题的另 阅读全文
posted @ 2021-02-03 14:53 DSHUAIB 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 这道题和P4008 【[NOI2003] 文本编辑器】其实是差不多的,只是tm的有一些坑 比如样例 10 Insert 13 Balanced eert Move 2 Delete 5 Next Insert 7 editor Move 0 Get Move 11 Rotate 4 Get 其实是 阅读全文
posted @ 2021-02-02 16:49 DSHUAIB 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 一道简单的数据结构题,直接用splay做即可 对于每一个操作 Move:直接修改光标位置 Insert:将光标所指的位置旋到根,再将它的后继旋到它下面,直接将序列插入为它的左儿子 Dlete:将光标所指的位置旋到根,再将光标加n所指的位置旋到它下面,并将它的左儿子直接赋值为0 Get:将光标所指的位 阅读全文
posted @ 2021-02-02 15:34 DSHUAIB 阅读(59) 评论(0) 推荐(0) 编辑
摘要: P3165 [CQOI2014]排序机械臂 一道Splay模板题,只不过需要注意一些细节 直接上代码 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> using namespace std; const 阅读全文
posted @ 2021-02-02 11:55 DSHUAIB 阅读(50) 评论(0) 推荐(0) 编辑
摘要: P2596 [ZJOI2006]书架 一道简单的数据结构题 对于每一个操作 Top:将s转到根节点,并将s的左子树移给s的后继 Bottom:将s转到根节点,并将s的右子树移给s的前驱 Insert:与前驱/后继交换信息 Ask:询问s的前驱的排名 Query:询问排名为s的编号 用Splay实现 阅读全文
posted @ 2021-02-02 08:27 DSHUAIB 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一道简单分块题,题目要求的是逆序对数量,那么对于每一次交换位置$l,r(l \le r)\(的操作,我们只需要判断区间\)(L,R)$中大于与小于两个端点的数字个数即可,可以考虑将每个块中进行排序再二分达到快速查询,时间复杂度为$O(n\sqrt\log)$ 具体见代码 #include<iostr 阅读全文
posted @ 2021-02-01 20:15 DSHUAIB 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 这道题一眼看去好像不能用什么数据结构做出,所以就只有打分块暴力了,刚开始想的时候没有想到用前缀和,所以写出来的时间复杂度就达到了$O(n\sqrt\log)$,交上去不仅T了还WA了。后面加上了前缀和时间复杂度就可以过了 思路 假设将整个序列分为T块,那么考虑预处理一个数组$tim_{i,j}$表示 阅读全文
posted @ 2021-02-01 08:14 DSHUAIB 阅读(42) 评论(0) 推荐(0) 编辑