02 2021 档案

摘要:P1221 最多因子数 根据唯一分解定理 \(m=p_1^{a_1}\times p_2^{a_2} \times ... \times p_k^{a_k}\). 那么 \(m\) 的约数个数就为 \((a_1+1)(a_2+1)...(a_k+1)\). 并且观察数据范围, \(n \le 5 \ 阅读全文
posted @ 2021-02-26 18:05 DSHUAIB 阅读(98) 评论(0) 推荐(1)
摘要:P1772 [ZJOI2006]物流运输 看完这道题,很容易想到需要用最短路,但是只用最短路显然是不行的,因为运输路线不止一条, 所以如果每一天都选择最短的路线答案可能并不是最优,所以这时候就需要考虑DP, 刚开始我想的是用状态压缩把所有可能的路线算出来,但很快就被我否决了,因为时间复杂度显然超了, 阅读全文
posted @ 2021-02-19 09:05 DSHUAIB 阅读(80) 评论(0) 推荐(0)
摘要:CF1077F2 Pictures with Kittens (hard version) 题解里好像没有和我做法一样的 (指状态不一样),那我就来发一篇,定义状态$f_{i,j}$表示当前选了$i$个数字,在第$j$个数字时的和的最大值 那么很容易可以想出转移方程 \(f_{i,j}=\max\l 阅读全文
posted @ 2021-02-18 21:23 DSHUAIB 阅读(63) 评论(0) 推荐(0)
摘要:读完这到题,感觉上像是一道二分图匹配得问题,但是它对于每一个点又有一些限制,所以可以考虑拆点,将男生和女生都拆成两个点,并连一条容量为k的边 对于一对相互喜欢的男女,在男l与女r之间连一条容量为1的边,如果不喜欢那么就在男r与女l之间连一条容量为1的边,枚举可以有和舞曲数量m,在S与男l,女r与T之 阅读全文
posted @ 2021-02-17 08:28 DSHUAIB 阅读(68) 评论(0) 推荐(0)
摘要:P3354 [IOI2005]Riv 河流 这是一道比较好的树型DP,在参考了网上的一些题解后,蒟蒻终于把它给做了出来 可以看到这道题如果只用二维表示状态明显是不够的 所以设状态$f_{i,j,k}$表示$i$为根节点,$j$为它的一个建有伐木场的父节点,$k$为$i$与它的子树共建的伐木场的数量 阅读全文
posted @ 2021-02-05 09:13 DSHUAIB 阅读(141) 评论(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 阅读(70) 评论(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 阅读(92) 评论(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 阅读(516) 评论(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 阅读(326) 评论(0) 推荐(0)
摘要:一道简单的数据结构题,直接用splay做即可 对于每一个操作 Move:直接修改光标位置 Insert:将光标所指的位置旋到根,再将它的后继旋到它下面,直接将序列插入为它的左儿子 Dlete:将光标所指的位置旋到根,再将光标加n所指的位置旋到它下面,并将它的左儿子直接赋值为0 Get:将光标所指的位 阅读全文
posted @ 2021-02-02 15:34 DSHUAIB 阅读(66) 评论(0) 推荐(0)
摘要:P3165 [CQOI2014]排序机械臂 一道Splay模板题,只不过需要注意一些细节 直接上代码 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> using namespace std; const 阅读全文
posted @ 2021-02-02 11:55 DSHUAIB 阅读(53) 评论(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 阅读(39) 评论(0) 推荐(0)
摘要:一道简单分块题,题目要求的是逆序对数量,那么对于每一次交换位置$l,r(l \le r)\(的操作,我们只需要判断区间\)(L,R)$中大于与小于两个端点的数字个数即可,可以考虑将每个块中进行排序再二分达到快速查询,时间复杂度为$O(n\sqrt\log)$ 具体见代码 #include<iostr 阅读全文
posted @ 2021-02-01 20:15 DSHUAIB 阅读(84) 评论(0) 推荐(0)
摘要:这道题一眼看去好像不能用什么数据结构做出,所以就只有打分块暴力了,刚开始想的时候没有想到用前缀和,所以写出来的时间复杂度就达到了$O(n\sqrt\log)$,交上去不仅T了还WA了。后面加上了前缀和时间复杂度就可以过了 思路 假设将整个序列分为T块,那么考虑预处理一个数组$tim_{i,j}$表示 阅读全文
posted @ 2021-02-01 08:14 DSHUAIB 阅读(54) 评论(0) 推荐(0)