01 2019 档案
摘要:传送门 https://www.lydsy.com/JudgeOnline/problem.php?id=4066 题解 由于是在线的,我们建棵KDtree。因为存在插入操作,我们可以用一种暴力方法维护平衡性:每插入一定次数,就重建整棵树。这样查询复杂度就不会过高。
阅读全文
摘要:题意 给定一个仙人掌,求出这个仙人掌的最大独立点集。 n⩽ 题解 哈哈,第一次写仙人掌DP,大脑爆炸。 这里用一种直接DP的方式。设f_{x,i,j}表示点x的选择情况为i,点x到父亲的那条边所在的环中,深度最大(位于底部)的点的选择
阅读全文
摘要:题意 给你一个图,求这个图的独立点集(集合内点互不相邻)个数。 n \leqslant 10^5,n 1 \leqslant m \leqslant n+10 题解 对于m=n 1的情况,直接上Tree_Dp即可,$f_{u,1}=\prod (f_{v,0}+f_{v,1}),f_{u,0}=
阅读全文
摘要:传送门 https://www.luogu.org/problemnew/show/P4329 题解 首先有一个最简单的状压解法。 设f_{sta}表示选定的人的状态为sta,他们去执行前几个任务的最大成功率,直接枚举转移。复杂度O(n \times 2^n)。 然后还有两种写法(本质相
阅读全文
摘要:传送门 https://www.luogu.org/problemnew/show/P4014 题解 km算法(费用流算法)裸题。 最小总效益把边权取负即可。 cpp include include include include include define inf 0x7f7f7f7f usin
阅读全文
摘要:题意 左边有n个点标号0~n 1,右边有n个点标号0~n 1,左边每个点连出两条边向右边。问图中是否存在完美匹配,若能,将左边点的匹配点标号按照左边点的标号大小依次写下。如果有多组方案,输入字典序最小的方案。 n \leqslant 10000 题解 一道加深对匈牙利算法理解的题。 首先最简单
阅读全文
摘要:题意 这是一个在n m的网格图上的博弈。后手先选择一个网格,把棋子放上去,之后轮流操作棋子向相邻的格子移动,每个格子只能让棋子停留一次,同时图中存在一些障碍点。问后手能否赢,若能,问放在哪些格子上能赢。 1 \leqslant n,m \leqslant 100 题解 一道博弈二分图匹配题。 首
阅读全文
摘要:题意 还是一个n个结点的树,每次询问还是选定k个点。规定每个点会给距离它最近的标记点(距离相同,编号最小)贡献1的权值,每次询问即是标记k个点,然后问这k个点的权值。 $N \leqslant 300000, q \leqslant 300000,k_1+k_2+...+k_q \leqslant
阅读全文
摘要:题意 给你一棵n个点的树,每个点都有一个颜色。定义一条路径的权值为u到v路径上依次经过的点(包括u,v)的颜色序列的颜色段数。有两种操作: 1.将路径上的点的颜色全改为y。 2.给定一个点的集合,对于集合内每个点求其到集合内所有点的路径权值的和。 $1≤n,q≤100000,c_i,y\leq 10
阅读全文