bitset/状态压缩
文章平均质量分 91
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
HDU 5890 Eighty seven ACM/ICPC 2015 Shenyang Online(DP+bitset优化)
说实话,人生第一次用bitset。 也不是特别为了练bitset,反正省赛的时候因为没有想到用bitset差点哭出来…… 这题就是,有n张卡片,卡片上面有一些数字,然后每次你抽出最多三张牌不能用,然后问是否有可能从n张牌中挑10张牌,使得他们的总和为87。 首先,我们考虑正常的dp,我们考虑dp[i][j][x]表示取了考虑了前i个数字,从中取j个数字,和为x是否可能。显然有转移方程dp[i][j][x]=dp[i-1][j-1][x-a[i]],然后这之中的原创 2017-09-05 23:08:35 · 378 阅读 · 0 评论 -
CodeForces 1114F Please, another Queries on Array?(线段树 + 状态压缩 + 数论)
大致题意:给你一长度为n的序列,和q个操作。一个是区间乘以某个数字,另一个是查询区间积的欧拉函数对1e9+7取模的结果。出了n和q,这里所有出现的数字都是小于300的。这里如果直接做,显然是不行的,因为欧拉函数虽然具有积性,但是并不能够取模,意味着不能直接保存区间积。同时,欧拉函数不具有完全积性,当gcd不为1的时候,不是直接相乘。但是这里有一个很重要的条件,即出现的每个数...原创 2019-02-13 11:15:28 · 318 阅读 · 0 评论 -
CSU 1889:Copying DNA 状压+记忆化搜索(KMP?)(2007 NCPC)
第七次多校赛,由于CSU校赛,然后就变成了网络赛,我们一组在本部图书馆的研讨室里面做题,然后那里就成了我们的福地。果然环境很重要吗?参加了那么多次多校赛,这次是最好的一次,A了6题,速度还很快排了第二,虽说题目水,虽说好像有大佬没有来参赛,但是真的还是值得纪念一下的O(∩_∩)O……然后这题在现场我个人感觉需要用到状态压缩,然后队友也说就是一个暴力,但是由于陈述题目的时候理解有误,所以现场并没有敲出来……然后到了场下来做这道题,一方面惊叹暴力算法的博大精深,一方面感叹题目的毒性颇深……原创 2017-04-26 17:11:53 · 763 阅读 · 0 评论 -
CodeForces 906C Party(状态压缩+dfs)
日常打cf…… 大致题意:给你一堆一对对的关系,然后每一个关系对代表两个人认识。然后你每次可以选择一个人i,让i认识的所有人都相互认识,即i把介绍自己所有的朋友给其他人。然后现在问你最少需要选择多少个这样的i,使得所有的人都相互认识。 看到只有22的数据范围,很容易想到状态压缩,但是如何利用这个状态压缩却没那么好考虑。如果考虑状态压缩dp,显然无法表示连通的状态。于是考虑用搜索,22个点要么最后被选要么没有,做多2^22=400W+,在承受范围内。然后就是看如何处理这个关系了原创 2017-12-24 21:05:44 · 1176 阅读 · 0 评论 -
CSU 1843:Jumping monkey 状压BFS (2010 Southwestern European Regional Contest)
1843: Jumping monkey Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 71 Solved: 13 DescriptionYou are a hunter chasing a monkey in the原创 2017-03-28 16:48:01 · 813 阅读 · 0 评论 -
CSU 2005 Nearest Maintenance Point(最短路+bitset优化转移)
比赛的时候MLE到想哭的题目,死都没想到用bitset…… 大致题意:给出一个图,然后给出一些关键点,然后有很多个询问,每次询问的时候问到达某点x最近的关键点是哪一个,如果有多个关键点同样近,那么把这些点全部输出。 如果不要求全部输出,那就是大水题一道,但现实是要全部输出来。初始的想法,对于每个点设置一个vector,存储到达每个点最近的关键点有哪些。但是发现合并起来并不方便,如果元素较多会导致超时。然后又考虑把最初来源作为新的一维,一起加入优先队列中,作为dijkstra的原创 2017-09-11 00:22:18 · 329 阅读 · 0 评论 -
CSU 1855 Shut the Box (状态压缩+BFS)
第一反应是往dp的方向上想的,枚举每一个状态,然后最后找到所有可行的状态中被摁下去的box的最多数目。然而这样的话总状态数1<<22,在加上有22个可以供拆分的数字,时空复杂度瞬间飙升(在这里我卡了第一次)。接着,我发现很多状态完全没有必要去枚举。初始时只有一个状态(全为0),往后状态是一步一步拓展出来的,也就是说,多余的步骤不需要枚举,只需要在这些拓展出来的点中继续转移即可。这样就和第二次多校赛的Monkey那题差不多了。利用一个bfs去不断的拓展状态,一直到最后无法拓展。对于原创 2017-03-27 19:47:41 · 1108 阅读 · 2 评论 -
HDU 5892 Resident Evil(状态压缩+树状数组)
看到题目标题:Resident Evil,我就知道自己一定要拿下这道题,果然是个硬骨头…… 大致题意是,有两种操作,P是在一个矩形区域内每个小格子中放相同种类及数量的生化怪兽,Q则是让你输出某一矩形区域内所有生化怪兽总和的的奇偶性,生化怪兽总共有50种。首先,50种生化怪兽的奇偶性很容易想到用状态压缩去表示,而奇偶性的添加变化则刚好对应位运算中的异或,一切看似理所当然。但是真正实现起来发现,异或统计区间和并不像通常理解的那样。原创 2017-07-17 15:05:09 · 510 阅读 · 0 评论 -
CSU 1784 Internet of Lights and Switches(状态压缩+组合计数)
挺有意思的一道题目…… 就是有m个开关,有n盏灯,然后每个开关可以控制多个灯。开始时灯都是卡着的,你可以连续的摁一段区间的开关,使得灯的状态发生改变,问你有多少种摁法可以使得最后的所有灯都灭,还有可以摁的开关个数一定要在规定区间以内。换句话来说,就是有多少个区间的异或和是n个1。 这题比较好的地方是已经比较明显的提示了你用状态压缩。然后其实我一开始想了一会儿没有思路,完全就是因为刚刚那个异或和的影响……如果你考虑真的求和的话,不论怎么考虑时间复杂度都不能满足。于是我们考虑逆向原创 2017-08-28 20:14:29 · 458 阅读 · 1 评论 -
牛客练习赛 41 简单数学题(数论 + 状态压缩 + FWT)
非常有意思的题,我解题的过程也是非常的精彩。纪念一下人生第一道FWT。首先是第一个f(t)函数,根据它的定义,首先是x必须是t的因子,然后要求莫比乌斯函数不为0,而且要满足这个条件的最大值。根据这几个条件,显然x就是t分解质因子后,所有质因子的乘积。然后g(x)函数,就是看每个因子的指数,如果是奇数那么这个质因子还在,否则相当于没有这个质因子。最后就是F(a,b,c),...原创 2019-03-04 19:29:09 · 345 阅读 · 0 评论