
ACM/ICPC BITSET优化
just_sort
Acdream.
展开
-
HDU 5972 Regular Number Bitset优化字符串匹配
题意: 给一个长度为n的模式子串,子串的每个位置分别可以是一些数字,即一个位置可以被多个数字匹配。再给定一个母串,问子串可以在哪些位置和木串匹配,并且输出匹配成功后的所有子串。 解题方法: 对于每一个数字建立一个bitset,然后对于每个bitset b[i]的数字来说, 如果允许它出现在字串j的位置,就让b[i][j] = 1。维护一个bitset ans,枚举母串的每一个位置i,先将ans原创 2017-01-15 15:57:49 · 1860 阅读 · 0 评论 -
51Nod 1532 DP + bitset 优化
题目链接:见这里 题意: N≤2×106的母串,M≤500的模式串 模式串的每个字符ci有cnti≤62个可选字符 求母串哪些位置可以匹配模式串解题思路: dp[i][j]:=母串匹配到i,模式串匹配到j,能否匹配 把所有可选字符压起来成LL,复杂度是O(nm)的,并不行 dp[i][j]=dp[i−1][j−1],t[j]>>s[i] and 1为真 由于dp状态是bool,并且状原创 2017-01-15 16:49:26 · 406 阅读 · 0 评论 -
HDU 5745 dp, bitset优化
题目链接:见这里题意:N≤105的母串,M≤5000的模式串 对于模式串,不相邻的2个字符可以和相邻的交换 即abcd,ab换和cd也可以换,但bc换了cd就不能换了 求每个位置是否能匹配模式串解题思路:f[i][j][3]:=母串匹配到i,模式串匹配到j,0和前面换,1正好匹配,2和后面换 转移:f[i][j][0]=f[i−1][j−1][2],si=tj−1 f[i原创 2017-01-15 20:10:41 · 400 阅读 · 0 评论 -
HDU 5616 Jam's balance dp, bitset
题目链接:见这里题意:可以去看BC的翻译。解题方法:可以使用bitset表示状态,因为最大和不会超过2000,那么我们只需要开4000的位数去表示 这一题表示有三种状态: 1。不放 dp 2。放在左边 dp<#include <bits/stdc++.h>using namespace std;const int offset = 2005;int w[22];int main()原创 2017-01-15 20:38:47 · 468 阅读 · 0 评论 -
HDU 5833 Zhu and 772002 高斯消元解异或方程组,求自由元个数,bitset压位
Zhu and 772002 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1799 Accepted Submission(s): 624Problem Description Zhu and 772002 are both原创 2017-03-04 16:54:53 · 1422 阅读 · 0 评论 -
BZOJ 4810: [Ynoi2017]由乃的玉米田 莫队,bitset
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4810Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美。这排玉米一共有N株,它们的高度参差不齐。 由乃认为玉米田不美,所以她决定出个数据结构题这个题是这样的: 给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问原创 2017-04-07 14:02:20 · 610 阅读 · 0 评论