hdu-5745 La Vie en rose bitset
来源:互联网 发布:手机淘宝旧版本 编辑:程序博客网 时间:2024/05/07 07:31
http://acm.hdu.edu.cn/showproblem.php?pid=5745
第一次使用bitset这个东西,优点是可以常数优化,而此题优雅的bitset转移刚好可以卡过
转移方程是看的这篇博客,
http://blog.csdn.net/u012015746/article/details/51992281
“
首先得出一个
而
转移方程为:
“
此题数据改过,虽然博主的代码现在提交是t的,但转移方程很好理解
在转移的时候稍微改改减少几次位运算次数就可以了
#include<bits/stdc++.h>#define eps 1e-9#define PI 3.141592653589793#define bs 1000000007#define bsize 256#define MEM(a) memset(a,0,sizeof(a))typedef long long ll;using namespace std;char s[100005],p[5005];char ans[100005];int n,m;bitset<100005>dp[2][3];bitset<100005>v[26];int main(){int T,i,j;//while(cin>>T) cin>>T;{while(T--){cin>>n>>m;scanf(" %s",s);scanf(" %s",p);for(i=0;i<26;i++)v[i].reset();for(i=0;i<n;i++){v[s[i]-'a'].set(n-i-1);}int now=1,pre=0;dp[0][0]=v[p[0]-'a'];dp[0][1].reset();if(m!=1)dp[0][2]=v[p[1]-'a'];for(i=1;i<m;i++){int i1=p[i]-'a'; int i2=p[i-1]-'a'; int i3=p[i+1]-'a'; dp[now][0]=((dp[pre][0]|dp[pre][1])>>1)&v[i1]; dp[now][1]=(dp[pre][2]>>1)&v[i2]; if(i!=m-1) dp[now][2]=((dp[pre][0]|dp[pre][1])>>1)&v[i3];swap(now,pre);}for(i=0;i<n;i++){if(n-i-m>=0&&(dp[pre][0][n-i-m]|dp[pre][1][n-i-m]))ans[i]='1';elseans[i]='0';}ans[n]=0; printf("%s\n",ans);}}return 0; }
阅读全文
0 0
- hdu-5745 La Vie en rose bitset
- [HDU 5745] La Vie en rose (DP+bitset卡时)
- HDU 5745 La Vie en rose(DP+bitset优化)
- hdu 5745 La Vie en rose(dp + bitset优化)
- HDU 5745 La Vie en rose bitset优化dp
- hdu 5745 La Vie en rose(bitset优化dp)
- HDU 5745 La Vie en rose(bitset优化dp)
- HDU 5745 La Vie en rose
- HDU 5745 ( La Vie en rose )
- HDOJ 5745 La Vie en rose DP+bitset
- HDOJ 5745 La Vie en rose (bitset优化DP)
- HDU 5745 La Vie en rose(暴力碾压过去。。。)
- HDU 5745 La Vie en rose(DP,枚举)
- HDU 5745 La Vie en rose(简单模拟)
- HDU 5745 La Vie en rose 字符串匹配(暴力)
- HDU 5745 La Vie en rose(水~)
- hdu5745 La Vie en rose dp+bitset优化
- hdu5745 La Vie en rose【dp+bitset优化】
- python添加外键报错NameError: name 'User' is not defined
- 关于echarts在bootstrap框架下的自适应
- 3712: [PA2014]Fiolki(思路好题)
- c# 二分查找
- 6. ZigZag Conversion
- hdu-5745 La Vie en rose bitset
- jquery懒加载
- 数量的重要性!
- java Robot和Timer混合使用
- substring,substr,和slice的区别详解
- namenode异常退出分析及解决办法
- easyui 单元格合并
- vlc源码分析(七) 调试学习HLS协议
- JQUERY的$(function(){})和window.onload=function(){}的区别