![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM——动态规划((dp)
文章平均质量分 71
除了树形dp以外的dp
一只酷酷光儿( CoolGuang)
桃李不言 下自成蹊
展开
-
【Nowcoder】2020牛客暑期多校训练营(第六场)H-Harmony Pairs | 数位dp
本以为自己刷的数位dp够多了没想到这种类型的真的没见过不过没事 学到新知识了!题目链接:https://ac.nowcoder.com/acm/contest/5671/H题目大意:询问在小于n中,有多少对(i,j),使得i的数位和大于j的数位和,但是i<j题目思路:第一反应数位dp .. 肯定数位dp但是我卡在一个地方了..如何才能同时满足两个条件呢然后我就一直在搞 :枚举权值和 分上下两次dp等等..发现去重是个困难的事比赛结束后,看了一下代码瞬间懂了原创 2020-07-31 00:04:34 · 283 阅读 · 0 评论 -
【Codeforces 55D】Beautiful numbers | 数位dp、离散化
题目链接:https://codeforces.com/contest/55/problem/D题目大意:询问给定区间[l,r]内,有多少个数可以整除他所有的非0数位例如:42,42既可以整除2 又可以整除4题目思路:首先可以想到一个数可以整除他的非0数位 意味着:一个数可以整除他的非0数位的lcm(虽然不是数论选手,但这个还是知道的)所以可以求一下1~9lcm的最大值 : 2520假设y的数位lcm是x,那么如果x满足 (y%2520)%x == 0那么根据前面就可以确原创 2020-11-17 16:46:07 · 162 阅读 · 0 评论 -
【Codeforces 834E】Ever-Hungry Krakozyabra | 暴力、数位dp
题目链接:https://codeforces.com/contest/834/problem/E题目大意:定义一个操作f(x)f(x)表示把x的每一位按照从小到大非递减排序之后去除前导0的数字f(5406) = 456询问区间[L,R]内有多少种f(x)题目思路:考虑最终的组合有多少种情况最终组合必然是:a个0 + b个1 + c个2 + ..组合而成利用组合数学的插空法:可以算出最大方案数C(27,9) = 4e6?这个暴力一下也是可以知道的之后就考虑如何ch原创 2020-11-25 20:44:32 · 243 阅读 · 0 评论 -
【Codeforces 914C】 Travelling Salesman and Special Numbers | 数位dp、思维
题目链接:https://codeforces.ml/problemset/problem/914/C题目大意:给出一些数的操作:x 可以 一步到达 y,当且仅当 x的二进制表示中有 y个1给出一个很大的二进制数询问: 小于等于该二进制数的有多少个数满足可以经过k步变为1题目思路:首先发现一个操作,每个数进行第一步操作之后,数就变为该数二进制数的个数那么 二进制数最多有 1000位,所以进行一步以后 必然会到达 小于等于1000的数所以可以事先打表 看一下小于1000的数原创 2020-11-23 16:44:27 · 234 阅读 · 0 评论 -
【ICPC】2020ICPC上海 Sum of Log | 数位dp
赛时(志愿者):这不是裸的数位dp?赛后(疯狂敲代码):woc,怎么T了..题目大意:就是求一下上面式子的和题目思路:首先考虑双线程,0~X,0~Y去进行数位dp,与2020牛客多校某题类似所以很容易可以求出的是 0~X,0~Y中,(i&j) == 0的数量仔细观察这个式子,因为 i&j == 0,所以每一位必不相同,所以其实就是求对于每一对(i&j) == 0,max( f(i) , f(j) ) 的和,f(x)代表x的二进制最高位所以就可以在数原创 2020-12-13 18:35:02 · 829 阅读 · 2 评论 -
【Codeforces 507D】The Maths Lecture | 数位dp、思维
题目连接:https://codeforces.com/contest/507/problem/D题目大意:求出有多少个数字满足:1.长度为n2.存在某一个后缀s[i:n]的值y,使得y%k == 0题目思路:根据题目来言,数位dp是跑不掉了..但是数位dp的记忆化是根据,前缀来的,后缀如何处理呢?不妨转换一下,后缀转换为前缀。那么abcdf 翻转一下 fdcba那么求后缀cdf 也就是 前缀fdc因为题目要确保数字是n位数字,所以第一位不能是0,那么也就对应翻.原创 2020-11-20 11:24:07 · 213 阅读 · 0 评论 -
【upc】 Simple Addition expression 数位dp
题目描述A luxury yacht with 100 passengers on board is sailing on the sea in the twilight. The yacht is ablaze with lights and there comes out laughers and singing from the hall where an evening party ...原创 2019-08-09 10:44:26 · 167 阅读 · 0 评论 -
【upc】Simple Problem | 思维、LIS
有一定义域为R的连续函数f(x),f(x)在(-∞,A)上严格单调递增,在 (A,+∞)上严格单调递减,其中 A对于任意a<b≤A,均有f(a)<f(b)≤f(A)对于任意a>b≥A,均有f(a)>f(b)≥f(A)已知n个整点(xi,yi)(xi,yi是整数,xi互不相同),求f(x)最多有可能经过的点数。输入输入第一行一个整数n,表示点数。接下来n行,每行两个整数xi,yi,表示一个点。输出输出一行一个整数,表示f(x)最多有可能经过的点数。样例...原创 2020-07-04 21:32:29 · 356 阅读 · 0 评论 -
【Codeforces 1437E】Make It Increasing | 最长不下降子序列
题目连接:https://codeforces.com/contest/1437/problem/E题目大意:给出一个长度为n序列a_i给出m个不可以修改的点,除了这m个点以外 其余点可以随便修改询问最少修改多少次使得序列严格上升?题目思路:首先考虑如果没有不动的位置怎么办?考虑有哪些位置一定可以不变对于最终的序列而言,一定有:num[i] - num[j] >= i- j所以num[i]-i >= num[j] - j所以最终序列而言,任意的两个位.原创 2020-11-05 19:06:37 · 248 阅读 · 0 评论 -
【upc】积木 | LIS、思维
问题 G: 积木时间限制:1Sec内存限制:128 MB提交状态题目描述Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。Mary用他的所有积木垒了一个高塔。妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置。一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置。Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置。请你告诉Mary她应该移走哪些积木。输入第一行为一个数n,表示高塔的初始高度。第二行包含...原创 2020-07-17 16:27:53 · 312 阅读 · 0 评论 -
【知识总结】最长公共上升子序列 | LCIS、O(n^2)
想总结一下此类问题,总是鸽!今天决定不鸽!最长公共上升子序列也就是LCS与LIS的结合体此时如何做到O(n^2)呢?考虑f(i,j)表示a数组的前i个与b数组的前j个构成的并且以a[i]与b[j]结尾的最长公共上升子序列此时用网格图考虑一下: 2 4 3 6 5 2 1 0 0 0 0 5 1 0 0 0 2 6 1 0 0 1 2 .原创 2020-07-17 15:54:21 · 334 阅读 · 1 评论 -
AtCoder Beginner Contest 145 E-All-you-can-eat | 超出限制背包
题面:https://atcoder.jp/contests/abc145/tasks/abc145_e题面估计都懂了,类似于背包问题。首先,如果题目中没有给出 时间停止可以继续吃 这个条件的话,这个题就是一个裸的01背包问题。然而,题目中加了这个条件,所以需要把背包问题转换一下:之前背包的上限容量 是T,但是因为题目限制,所以可以把背包容量扩充到 T+w[i]-1这个时候这个...原创 2019-11-17 00:24:35 · 958 阅读 · 0 评论 -
【upc】Transport Ship | 二进制优化多重背包
题目描述There are N different kinds of transport ships on the port. The i^th kind of ship can carry the weight of V[i] and the number of the ithkind of ship is 2C[i]-1. How many different schemes there...原创 2019-08-07 13:37:32 · 193 阅读 · 0 评论 -
【upc】取石子 | 背包方案DP
题目大意:n+e最近在研究取⽯⼦游戏。有n堆⽯⼦,第i堆⽯⼦有ai个,最多取m堆⽯⼦(保证m≤n),请问在要求总⽯⼦数不超过k的情况下最多能取多少⽯⼦。输入第⼀⾏输⼊3个数字n,m,k,意义见上。第⼆⾏n个数字,依次表示ai。输出输出⼀个数字,表示你的答案。样例输入 Copy4 3 51 1 2 3样例输出 Copy5提示取第1、2、...原创 2020-01-16 23:57:58 · 363 阅读 · 0 评论 -
【LDUOJ】NOI 2019 多校联合 蓝精灵的请求 | 二分图染色、分组背包
好久没有动CSDN了,还好吗老友~假期开始,博客也要跟进了~ 蓝精灵的请求题目大意:在山的那边海的那边住着n个蓝精灵,这n个蓝精灵之间有m对好友关系,现在蓝精灵们想要玩一个团队竞技游戏,需要分为两组进行,且每一组中任意两个蓝精灵都是好友。另外,他们还想要最小化每组蓝精灵内部的好友关系数之...原创 2020-01-11 21:46:28 · 277 阅读 · 0 评论 -
【Nowcoder】2021牛客寒假算法基础集训营1 C红和蓝 | 树形dp 、 二分图
题目链接题目大意:给出一棵树,对其进行染色,染红色或者蓝色。问是否存在一种染色方案使得 每个染红色的点只有一个红色点与其相连,每个染蓝色的点只有一个蓝色点与其相连。输出任意一种染色方案。题目思路:把题目做一下转换,红色点连接红色点,蓝色点连接蓝色点,什么意思?可以把每一对颜色相同的点看成一组,当这个树可以被划分n2\frac{n}{2}2n组时,便可以划分成功,因为树是二分图,所以最后对其进行二分图染色就好了。所以只需要维护一下,一棵树是否能被分成n2\frac{n}{2}2n个连通块即原创 2021-02-01 23:59:24 · 291 阅读 · 0 评论 -
【Codeforces 486D】Valid Sets | 树形dp、组合计数
题目链接:https://codeforces.com/contest/486/problem/E题目大意:给出一棵树,每个点都具有一个权值。现在要求求出合法的联通块的数量连通块合法定义为:连通块内最大权值 - 最小权值 <= d题目思路:N是2000,所以考虑一下最终状态所有的连通块必然会以一个点为最大值所以我们可以枚举所有点当作最大值时 ,向外扩充的联通块的数量这个题可以先变形,把“合法”条件 去掉求一下树上有多少个连通块,那么转移时非常显然的dp[原创 2020-11-18 17:00:04 · 245 阅读 · 0 评论 -
【Codeforces 1294F】Three Paths on a Tree | 树形dp、树的直径
题目大意:给定一棵含 n (3≤n≤2⋅105)n\ (3\leq n\leq2\cdot 10^5)n (3≤n≤2⋅105)个结点的无权树,试找出三个结点 uuu、vvv、www。card({u,v 间的路径}∪{v,w 间的路径}∪{w,u 间的路径})\operatorname{card}(\{u,v\text{ 间的路径}\}\cup\{v,w\text{ 间的路径}\}\cup\{w,u\text{ 间的路径}\})card({u,v&nb原创 2021-01-12 00:35:39 · 195 阅读 · 0 评论 -
【Codeforces 1060E】Sergey and Subway | 思维、树形dp
题目链接:https://codeforces.com/contest/1060/problem/E题目大意:给出一棵树,如果x连接y,y连接z,那么x连接z注意:这个连接没有传递性询问所有点对的最短路的和题目思路:看懂题目以后,自然是传统A题点到为止,假设x与y之间长度是z那么如果z为奇数,答案就是(z+1)/2如果z为偶数,答案就是(z+1)/2有点废话,但是就是个上取整的关系所以对于偶数的答案,我们只需要维护一个所有偶数的链的长度之和/2即可对于奇.原创 2020-11-23 15:39:26 · 220 阅读 · 0 评论 -
【HDU5293】Tree chain problem | 树形dp、LCA、树剖
题目大意:给出一棵树,这棵树上分布着m条链,每条链都有一个权值,询问在保证选的链互不相交的情况下,最大的权值是多少题目思路:en ..卡了一晚上,卡到了lca,吐啦首先将这m条链的lca求出来,把每条链的两个端点放到lca里面。之后就可以进行树形dp了令dp[i]表示,以i为根的子树选出不重复链的最大权值那么对于一个根节点u,选择经过u的链,和不经过u的链两种选择:如果不选择经过u的链:那么对于子树无限制,所以sum += dp[e] //e是u的孩子如果选择经过u的原创 2020-12-13 13:10:44 · 247 阅读 · 0 评论 -
洛谷P2495 [SDOI2011]消耗战 | 一个典型的可以搞懂虚树的例题
题目链接题目大意:给出一棵树,之后对这棵树进行q次询问,每次询问一个点集,给出使得这些点集中的点都不能直接或者间接的与1相连,需要删边的最小代价(边的代价在给树的时候给出),,点集不包含1,点集总共大小<=500000题目思路:首先考虑如果没有m次询问的结果考虑树形dp对于一个点来说:1.如果其是询问点,那么此点必定会删除,所以这个点的贡献必然是1~u之间的边权最小值2.如果不是询问点,那么对于这个点来说,可以全部删除其子树的点 同时也可以找一个 该点到1的边权最小值,原创 2020-07-07 15:39:47 · 343 阅读 · 0 评论 -
【HDU1561】The more, The Better | 树形依赖背包、树形dp
题目大意:ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗?题目思路:这种类型的树形dp就比较明显了考虑dp[u][k]代表从u节点出发选了k个物品的最大值,因为存在依赖关系;所以注意状态转移时,特别注意dp[u][0]这个不合法状态不要计入到转移内由原创 2020-12-17 14:27:24 · 155 阅读 · 0 评论 -
【upc】树统计 | 虚树、边权统计
问题 E: 树统计时间限制:1Sec内存限制:128 MB提交状态题目描述骗分过样例,暴力出奇迹。关于树的算法有一大堆,样样都是毒瘤。比如说 NOIP2018 提高组的 D2T3,如果会动态 DP 的做法那么就马上想到正解,但是 Tweetuzki 不会动态 DP,就只好骗分了。可惜树题的码量也是超级大的。听说好多学长都会动态 DP,但是考场上调不出来,只好暴力分收场了。疯狂暗示Tweetuzki 当时暴力写挂了,有 4 个点写成了死循环……于是分数白白少了 16 分。Twe...原创 2020-07-07 17:38:18 · 369 阅读 · 0 评论 -
【LDUOJ】2020年下半年第11周训练 最大匹配 | 树形dp、组合计数
题目大意:针对两个任务进行回答F = 1 时,询问该树的最大匹配F = 2时,询问该树的最大匹配数量题目思路:好家伙,没读完题直接上了网络流结果超出所料,没T 竟然wa了,仔细一看,哦原来是两个任务树上最大匹配有两种解法:1.网络流 二层图建图 跑最大流2.树形dp,dp[u][0/1]代表u节点有无被选的子树最大匹配显然这题需要计数的话,就对第二种解法加个变式即可f[u][0/1]就代表u节点有无被选的 最优情况时的最大匹配数量模拟一下最大匹配的转移,.原创 2020-11-13 09:47:21 · 160 阅读 · 0 评论 -
【Codeforces1404B】Tree tag | 树上追击、博弈、树的直径
题目链接:https://codeforces.com/contest/1404/problem/B题目大意:Aiice和Bob在一棵树上,初始Alice在a点 , Bob在b点,Alice可以一次走da步,Bob可以一次走db步,Alices先走,询问Alices是否能追上Bob题目思路:首先很明确的一点:如果从Alices为根的树,Bob的深度小于等于da那么Alice必赢其次考虑如果da*2 >= mx(树的直径),那么就表明Alice走完第一步之后就可以到达任何点,所以原创 2020-10-24 21:56:22 · 402 阅读 · 0 评论 -
【Nowcoder】牛客练习赛1 B-树 | 树形dp、组合数学
题目大意:shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。题目思路:把题目要求转换一下,对于每一种颜色均为一个连通块。否则,则不满足要求所以可以考虑,把这个树分成kkk个连通块的方案数是多少对于分成kkk个连通块的每一个方案,有mmm种颜色,那么方案数自然为:AmkA_m^kAmk所以之需要求出,将树划分为1....k1....k1....k个连通块的方案数原创 2021-01-06 15:54:46 · 381 阅读 · 0 评论 -
【HDU4003】 Find Metal Mineral | 树形dp、思维
题目大意:给一棵n个节点的树, 节点编号为1~n, 每条边都有一个花费值.有k个机器人从S点出发, 问让机器人遍历所有边,最少花费值多少?题目思路:卡了两天的树形dp,一开始根本搞不懂如何处理回边。那就简单分析一下了:令dp[i][k]代表以i为根的子树,派出去k个遍历完子树这里为了方便处理回边,所以状态的定义是: 派出去k个遍历完子树不返回,那么k = 0自然就是有回边的情况了现在考虑一下回边的状态:对于一棵子树,全部遍历完然后再返回根节点,权值是 子树的边权值和 * 2原创 2020-12-17 13:50:11 · 291 阅读 · 0 评论 -
【Codeforces 1454E】Number of Simple Paths | 思维、基环树相关、树形dp
题目链接:https://codeforces.com/contest/1454/problem/E题目大意:给出一个N个点,N条边的树,询问在这个树上有多少条简单路径题目思路:首先n条边n个点是一个基环树绝对没问题考虑分三种情况讨论:1.两个端点均在环内:环的大小*(环的大小-1)2.一个端点在环,另一个端点不在环,考虑这种情况必然会通过环上一个点,所以枚举换上的点作为根跑一遍子树,该子树一下除了到根是一条外,其余都是两条3.两个端点都不在环,这种以环为根考虑树形dp直接合原创 2020-11-25 10:33:22 · 521 阅读 · 1 评论 -
【Codeforces 1156D】 0-1-Tree 树形dp
题目大意:给出一棵树,没条边具有边权0/1,求出真路径的数量真路径(x,y):x->y的路径上,如果经过了1,则之后不能经过0题目思路:考虑最终合法的路径数量:1000 000 111由这几种路径数量去状态压缩:dp[i][k] 表示 从i节点出发状态为k的路径数量状态转移方程的推法:如果当前边为1,那么从该节点出发一定为10 11 与 00 01 无关如果当前边为0,那么从该节点出发一定为00 01 与11 10 无关最后考虑合并时产生的贡献(这个地方很复杂,原创 2020-06-02 17:37:37 · 383 阅读 · 0 评论 -
【HDU2196】Computer | 树形dp、换根dp
题目大意:抽象一下:求出距离每个点的最远距离题目思路:典型的模板思路了dp_u代表i点向上的最长链的长度dp_d代表i点向下的最长链的长度进行合并即可此博客只是为了以后查询方便,不仔细讲解换根dpCode:/*** keep hungry and calm CoolGuang! ***/#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")#pragma GCC op原创 2020-12-17 15:19:32 · 216 阅读 · 0 评论 -
【Nowcoder】黑白树 | 树形dp
链接:https://ac.nowcoder.com/acm/problem/13249来源:牛客网题目描述一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1。树上每个节点i对应一个值k[i]。每个点都有一个颜色,初始的时候所有点都是白色的。你需要通过一系列操作使得最终每个点变成黑色。每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点...原创 2020-03-05 22:11:36 · 273 阅读 · 0 评论 -
【Codeforces 337D】Book of Evil 经典树形dp
题目链接:https://codeforces.ml/contest/337/problem/D题目大意:老题了关键在于转换.给出一棵树与m个节点,询问有多少个点到这m个点的距离都小于等于p题目思路:经典做法:考虑每个点对答案的贡献对于每个点来言,若与他距离最远的点的距离都小于等于p,那么他对答案的贡献就会+1考虑树形dp的做法类似求直径的做法,换根求最长链即可s代表向下引申的最长链与次长链t代表向上引申的最长链这种题之前遇到过没有写博客导致思路还卡了一会儿,这次原创 2020-06-28 13:21:26 · 333 阅读 · 0 评论 -
【Nowcoder】蓝魔法师 | 树形dp、组合计数
题目链接:https://ac.nowcoder.com/acm/problem/20811题目大意:给出n个点的一棵树,问有多少种删边方案使得删边后各连通块大小小于等于k?题目思路:考虑树形dp与组合数学结合定义dp状态 dp(i,k) 代表 i的子树全部合法且i的连通块大小是k那么显然对于任意一个节点u来说初始:dp[u][1] = 1接下来枚举每一条边,对于一条边来言有删除与不删除两种状态:1.删除:删除此边,那么就意味着当前以u节点连通块大小为k的方案数 都可以原创 2020-08-05 01:52:19 · 326 阅读 · 0 评论 -
【Codeforces 1105E】Helping Hiasat | 状态压缩、最大独立集、折半
题目大意:你在某社交网站上面注册了一个新账号,这个账号有n(n≤105n(n\leq 10^5n(n≤105)次记录。要么就是你更改过一次IDIDID,要么就是一个IDIDID为s(∣s∣≤40)s(|s|\leq 40)s(∣s∣≤40)的朋友访问过你的空间。你有m(m≤40)m(m\leq 40)m(m≤40)个朋友。每一个朋友都会访问你的空间至少一次。如果这一个朋友每一次访问你的空间的时候,你的IDIDID和它的IDIDID一样,那么他就会高兴。 求你最多能让多少人高兴。题目思路:首先考虑选原创 2021-01-10 23:09:33 · 168 阅读 · 0 评论 -
【Codeforces 482B】 Game with Strings | 状压、概率dp
题目链接:https://codeforces.com/contest/483/problem/E题目大意:给出N个字符串(互不相同)A可以选择一个字符串询问B可以回答A某位置上的字母是什么问A能猜出字符串的期望次数题目思路:网上五花八门的题解,看的乱七八糟..认真写一篇博客首先看到:m<=20,所以肯定取状压,那么s的状态下01二进制就代表位置的询问状态(1被选择0不被选择)所以,如果没有字符串的限制,那么选择这个状态很容易推:cot代表当前状态s原创 2020-10-23 17:22:23 · 179 阅读 · 0 评论 -
【LDUOJ】2020年下半年第12周训练 数对 | 状压dp、容斥原理
题目大意:如图所示题目思路:卡了一天...一直在想 n*X 的算法....没有想出来,昨晚睡觉前突然想出了一个一定对的思路2^10的容斥,复杂度是一定可以接受的但是现在需要定义一下集合定义集合A = 代表 相同数包含1的 友好数对定义集合B = 代表 相同数包含2的 友好数对那么交集即为A∩B:代表 相同数包含1和2的 友好数对ans = A∪B∪C ...∪I(I代表相同数包含9的 友好数对)怎么处理每个集合的对数呢?对于每个状态用状压dp跑一下...原创 2020-11-17 11:49:55 · 147 阅读 · 0 评论 -
【Codeforces 1391D】 505 | 思维、状压dp
题目链接:https://codeforces.ml/contest/1391/problem/D题目大意:给出一个n*m的01矩阵,要求这个01矩阵里每一个偶数变长的正方形内1的个数均为奇数你可以将1变0,也可以将0变1问最少需要几次使得满足条件,若无法满足条件输出-1题目思路:首先从-1的情况出发, 什么时候是-1的情况?:偶数*奇数 是偶数,所以当最小边长大于等于4时,一定是无解的,因为其必然会包含4*4的矩阵。所以这就将最小边长缩小到了小于4的情况。所以这时候只需原创 2020-08-16 19:52:33 · 373 阅读 · 1 评论 -
【Codeforces 1288D】Minimax Problem | 状压、二分
题目大意:给出NNN个长度为mmm的数组(m<8)(m<8)(m<8),要求你任意选两个数组a,ba,ba,b,构造一个新数组:ci=max(a[i],b[i])c_i = {max(a[i],b[i])}ci=max(a[i],b[i]),问ccc数组最大的最小值是多少?题目思路:昨天群巨扔来的题,thinkthinkthink了一晚上,今早上发现自己SBSBSB了。可以得到最小值最大化绝对是二分,所以题目就转换成了怎么checkcheckcheck。二分当前的最小值是x,那原创 2021-04-12 09:55:57 · 280 阅读 · 0 评论 -
AtCoder Beginner Contest 187F Close Group | 状压dp、子集枚举
emmm,比较好的思想,忘记总结了,补上。题目大意给出一个NNN个点的无向图,有mmm条边,询问最少分成几个连通块,使得每个连通块内都是完全图?题目思路由于N≤18N \le18N≤18,所以考虑状压dp即可显然,dp[i]dp[i]dp[i]代表i状态可以划分成的最小状态数,那么考虑iii的所有子状态sss,并考虑状态sss是否合法,如果合法,那么必然有:dp[i]=dp[i⊕s]+1dp[i] = dp[i⊕s]+1dp[i]=dp[i⊕s]+1所以考虑这些状态,将状态从小到大枚举,把当前状原创 2021-01-08 20:36:21 · 277 阅读 · 1 评论 -
NOI 2019 多校联合 世界树的考验 | 树上差分、状压DP
世界树的考验题目大意:终于,历经千难万险后,路明非来到了世界树下,探寻自己的身世之谜,但世界树却给他出了一道难题。世界树是一个有n(n<=100000)个节点n-1条边组成的无向连通图,树上的每条边都有一个边权,路明非每次可以选中世界树上任意两个点,将其路径上...原创 2020-01-11 22:18:35 · 275 阅读 · 0 评论