HDU5716, HDU5745【dp+bitset】
DP+bitset
HDU5716
dp[i][j] = dp[i-1][j-1] && (s[i] in set[j]); 第二维压bitset
#include <bits/stdc++.h>
#define X first
#define Y second
#define mp make_pair
#define pii pair<int, int>
#define gg puts("gg");
using namespace std;
const int N = 2e6+;
int id(char c){
if(c >= ''&& c <= '') return c-'';
if(c >= 'a'&& c <= 'z') return c-'a'+;
if(c >= 'A'&& c <= 'Z') return c-'A'+;
return -;
}
char s[N], t[];
bitset<> se[], dp;
int main(){
while(gets(s+)){
for(int i = ; i < ; i++) se[i].reset();
dp.reset();
int m, n; scanf("%d", &n);
for(int i = ; i <= n; i++){
scanf("%d", &m);
scanf(" %s", t);
for(int j = ; t[j]; j++)
se[ id(t[j]) ].set(i);
}
dp.set();
bool tag = true;
for(int i = ; s[i]; i++){
if(id(s[i]) >= )
dp = (dp<<)&se[ id(s[i]) ];
else
dp.reset();
dp.set();
if(dp.test(n))
tag = false, printf("%d\n", i-n+);
}
if(tag) puts("NULL");
getchar();
}
return ;
}
HDU5745
dp[i][j] = (dp[i-1][j-1]&&s1[i] == s2[j])|(dp[i-2][j-2]&&s1[i] == s2[j-1]&&s1[i-1] == s2[j])
压小的一维T了,压大的一维可以AC.
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5+;
char s1[N], s2[];
bitset<N> se[], dp[];
int main(){
int t; scanf("%d", &t);
while(t--){
int n, m;
scanf("%d%d", &n, &m);
scanf("%s%s", s1+, s2+);
int l1 = strlen(s1+), l2 = strlen(s2+);
for(int i = ; i < ; i++){
se[i].reset();
for(int j = ; j <= l1; j++)
se[i][j] = (s1[j] == 'a'+i);
}
//se[i][j]: s1的第j个字符是不是i
dp[].set();
for(int i = ; i <= l2; i++){
dp[i%] = (dp[(i+)%]<<)&se[s2[i]-'a'];
if(i >= )
dp[i%] |= (dp[(i+)%]<<)&se[s2[i-]-'a']&(se[s2[i]-'a']<<);
dp[i%][] = ;
}
for(int i = l2; i <= l1; i++)
printf("%d", dp[l2%][i] == );
for(int i = ; i < l2; i++) putchar('');
puts("");
}
return ;
}
HDU5716, HDU5745【dp+bitset】的更多相关文章
- 【dp专题】NOIP真题-DP专题练习
这里学习一下DP的正确姿势. 也为了ZJOI2019去水一下做一些准备 题解就随便写写啦. 后续还是会有专题练习和综合练习的. P1005 矩阵取数游戏 给出$n \times m$矩阵每次在每一行取 ...
- [ZPG TEST 118] 最大值【dp+离线】
题4 最大值(findmax) [题目描述] 找到一个数组的最大值的一种方法是从数组开头从前到后对数组进行扫描,令max=a[0](数组下表从0..N-1),如果a[i]>max,就更新max ...
- 【8.14校内测试】【DP专题】
nlogn做法,dp[i]表示当前长度为i的最长上升子序列末尾元素的值. 不会写lower_bound(qwq,贴一个以前的好看点的代码 #include<iostream>//使用low ...
- uva 10069 Distinct Subsequences 【dp+大数】
题目:uva 10069 Distinct Subsequences 题意:给出一个子串 x 和母串 s .求子串在母串中的不同序列的个数? 分析:定义dp[i][j]:x 的前 i 个字母在 s 的 ...
- ZOJ 2972 Hurdles of 110m 【DP 背包】
一共有N段过程,每段过程里可以选择 快速跑. 匀速跑 和 慢速跑 对于快速跑会消耗F1 的能量, 慢速跑会集聚F2的能量 选手一开始有M的能量,即能量上限 求通过全程的最短时间 定义DP[i][j] ...
- CodeForces 189A 166E 【DP ·水】
非常感谢 Potaty 大大的援助使得我最后A出了这两题DP ================================== 189A : 求切分后的ribbon最多的数目,不过要求切分后只能存 ...
- 【DP专辑】ACM动态规划总结
转载请注明出处,谢谢. http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 ...
- hdu 1025 Constructing Roads In JGShining’s Kingdom 【dp+二分法】
主题链接:pid=1025">http://acm.acmcoder.com/showproblem.php?pid=1025 题意:本求最长公共子序列.但数据太多. 转化为求最长不下 ...
- 愤怒的小鸟【$DP$优化】
卡常的状压\(DP\),愤怒的小鸟. 其实本来是个很水的状压\(DP\),但因为最后三个点\(n=18\),成功地把我的不可能达到的下界为\(\Omega(2^nn^2)\),紧确的上界为\(O(2^ ...
随机推荐
- Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory
一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...
- List null
List<String> list = new ArrayList<String>(); 不给list add,list也不为null 所以list判断有没有数据,只能用判断l ...
- Ubiquitous Religions 分类: POJ 2015-06-16 17:13 11人阅读 评论(0) 收藏
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 26678 Accepted: ...
- 程序的链接和装入及Linux下动态链接的实现
http://www.ibm.com/developerworks/cn/linux/l-dynlink/ 程序的链接和装入及Linux下动态链接的实现 程序的链接和装入存在着多种方法,而如今最为流行 ...
- linux中快捷键
ctrl+c 终止现在的进程 ctrl+d 退出现在的命令行,类似于exit shift+pageup/pagedown 向上或向下翻页
- python中zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表.(在海豚实习时自己写了一个要用到zip的函数,那个例子非常代表性) 示例1 for i,j in zip(range(3) ...
- eclipse字体推荐
首先大家可以看看这里面推荐的最佳十款字体,http://www.iteye.com/news/11102-10-great-programming-font 但是经过测试发现,排名第一的字体在ecli ...
- 四、java中的数组
总结: 数组的特点: 1.存储的数据类型单一. 2.数组的大小不可变. 3.Arrays工具类.
- 从exchange2010上面删除特定主题或特定时间的邮件
昨天在上班的公交上接到同事电话,说他的的部门老大发错了一封邮件到另外一个同事邮箱了,问我能不 能去那个同事的邮箱里面删除,我一想,之前在网上看到过资料,到了公司趁那个误接收邮件的同事还没有来,在服务器 ...
- 一SERVLET (1)
转载自http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公 ...