- 2025-01-23关于此题[ABC343G] Compress Strings 状压DP的一些总结
传送门通过这道题也是让我对TSP问题有了更深的理解。首先这道题中给定n个字符串,我们发现n的范围只有20。让我们求这n个字符串作为同一个字符串的子串时,该字符串最短是多少。我们发现,如果有一个字符串被另一个字符串完全包含,那么它对答案是没有影响的,所以我们可以先用哈希标记
- 2025-01-18[ARC 058 - E]Iroha and Haiku
传送门解题步骤首先可以发现题目范围非常小,尤其是\(X,Y,Z\),所以考虑类似状压、数位dp、双向搜索等算法。官方题解中给的是数位dp,那我这里就讲讲状压了对于\(N\leq40\),很明显不能对其进行状压并且没意义,那么对于\(X,Y,Z\)呢?因为题目要求连续一段数满足要求,且\(X+Y+Z\leq17,
- 2025-01-18状压dp
状压dp应用背景以集合为状态,集合一般可以用二进制表示,用二进制的位运算处理集合问题一般是指数复杂度的,例如:1.子集问题,设n个元素没有先后关系,那么一共有\(2^n\)个子集;2.排列问题,对所有n个元素进行全排列,共有\(n!\)个排列状态压缩:主要就是dp的一种状态,与dp转移关系不大位运
- 2025-01-08Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]
L语言:很好的一道状压dp题。思路看到这题,首先可以想到一个很暴力的dp,设\(dp_i\)表示考虑到第\(i\)位能否被理解,暴力匹配字符串转移即可。第一个优化也很显然,暴力匹配字符串换成AC自动机即可。但是时间复杂度变成了\(O(m|T||S|)\)的,显然会被卡。状压与位运算优化
- 2024-12-12模型下载
模型下载的网址有很多,根据不同的框架和模型类型,下载的渠道也有所不同。以下是一些常用的模型下载网址,我将它们按框架和类型进行了分类,并提供了一些额外的提示,希望能帮助你更方便地找到所需的模型:HuggingFaceHub:网址:https://huggingface.co/models描述:HuggingFaceHub
- 2024-12-06fmt 常用库函数介绍
C++的fmt库是一个开源、轻量和高性能的格式化库,它实现了C++20的std::format标准,用来替代C中的stdio和C++的iostream。fmt库的性能相比于printf和iostream有显著的提升,经过官方文档测试,速度分别快0.3和4倍,且该库提供了类似Python的字符串格式化语法,使用
- 2024-09-252024.9.6-CSP模拟赛5
考试:9:00~9:10发卷:T1有想法但要思考一下。T2水题,秒切。T3状压,昨天晚上就在看,但没看完只听了思路。T4看上去是原题,可以做一做。9:10~9:30先做T4,真是原题,直接写。直接写了归并排序,前面又补了一个0,然后求了逆序对。样例很快就过了就放了。9:30~9:50直接写了T2,T2
- 2024-09-14GYM 103389 C
题目描述有\(N\)个景点,第\(i\)个属于公司\(c_i\)。当你第一次路过一个属于公司\(i\)的景点时,你会获得\(w_i\)元。在景点之间有\(m\)条单向道路连接\(u,v(u<v)\)。一开始你在景点\(1\)。求到所有景点\(1\lei\leN\)时最多能获得多少元。思路由于公司数量很少,所
- 2024-09-08状压DP(c++)
好久都没来水博客了,现在闲的来写一篇刚学的状压DP思想状压DP要把一个集合中的所有元素一一分别拿出来讨论,需要用到二进制保存集合状态例如110001010二进制,0代表没有,1代表有这个元素876543210他的位置所有状压dp差不多就一个思想逐步将集合中的点包含进来首先引入一道题
- 2024-08-22Victor and World(状压DP)
题目描述Aftertryinghardformanyyears,Victorhasfinallyreceivedapilotlicense.Tohaveacelebration,heintendstobuyhimselfanairplaneandflyaroundtheworld.Thereare\(n\)countriesontheearth,whicharenumberedfrom\(1\)to\(n\)
- 2024-08-19目录
算法数学数学基础矩阵加速线性递推数据结构分块and莫队平衡树经典分治算法线段树图论图的联通性相关图论杂项差分约束dp树形dp状压dp其他比赛复盘
- 2024-08-19状压 dp
定义在动态规划中,可能存在以“集合”为状态的动态规划,应为集合不易表示,所以通常用一个二进制数来表示集合。具体的,二进制数的第\(i\)位即表示当前集合是否包含第\(i\)个元素。技巧因为许多位运算的运算优先级很迷,所以搞不明白就尽量用括号。二进制操作将\(n\)位二进
- 2024-08-08lg-dp1
记忆化搜索:记忆化压缩DP状态(一些期望dp里会用)剪枝递推:保证前面的部分已经计算了数位dp求\([l,r]\)之内满足某种限制的数的个数,该限制应该是与数位有关系的。带不带前导0取决于是否对统计答案造成影响。前缀和转化:只有上界补充题:如果lim=1的时候前面都
- 2024-08-04Luogu P1777 帮助 题解 [ 紫 ] [ 线性 dp ] [ 状压 dp ]
帮助:大毒瘤!!!调了我2h,拍了我2h,最后没调出来,重写才AC。wdnmd。思路这题主要是线性dp,而状压dp只是最后在统计答案时的一个辅助。首先定义\(dp[i][j][k]\)为考虑前\(i\)本书,已经抽出来了\(j\)本,最后没被抽出来的一本书是高度\(k\)的最小混乱度。每次放入的书与最后一位
- 2024-08-02Luogu P3959 宝藏 题解 [ 紫 ] [ 状压 dp ] [ 二项式定理 ]
宝藏:一个对着蓝书代码调都能调两个小时的大毒瘤,但是思路还是很值得借鉴的,有普通状压和三进制状压两种做法,或者暴搜剪枝也可以(这里不介绍暴搜剪枝做法)。普通状压做法观察到\(n\le12\),首先想到状压。但考虑到普通的状压不太行,因为\(K\)这个数算在代价里,会导致这个dp有后效
- 2024-08-01状压DP
状压DP(BitmaskDP)将状态压缩为二进制表示,用于处理状态复杂的问题。主要分为一维和二维两种类型。一维状压DP最经典的是求最短哈密顿路径,对应\(n\)个结点的带权无向图,暴力枚举所有情况的时间复杂度为\(O(n)\),但是我们思考一下,到达某个顶点时,需要记录在这之前已经走过结点是