HDU 3341Lost's revenge
来源:互联网 发布:软件安装管理器2015 编辑:程序博客网 时间:2024/06/09 19:09
给定n个模式串和一个目标串,求将目标串重排列后所能包含的最多的模式串个数。可以开个dp[s][a][c][g][t]来记录状态转移,s为结点状态,但是a,c,g,t的值范围为[0,40],很明显数组爆了,于是有个很神奇的方法,可以利用状态压缩把状态压成最多11*11*11*11的大小来标记a,c,g,t. num[4]来记录a,c,g,t出现的次数。bits[4]代表对应的权值,那么bits[0]=(num[1]+1)*(num[2]+1)*(num[3]+1),bits[1]=(num[2]+1)*(num[3]+1),bits[2]=(num[3]+1),bits[3]=1; 假设枚举a,b,c,d时对应的下标为A,B,C,D。那么此时对应的状态status=num[A]*bits[A]+num[B]*bits[B]+num[C]*bits[C]+num[D]*bits[D].那么只需要dp[s][11<<4]来记行dp就可以了,最终的答案为最大的
dp[i][status],i为所有结点,status=num[0]*bits[0]+num[1]*bits[1]+num[2]*bits[2]+num[3]*bits[3].我觉得应该是a,b,c,d对应在定义好的一段上吧?我也不是十分理解...代码如下
0 0
- hdu 3341 Lost's revenge
- hdu 3341 Lost's revenge
- HDU 3341 Lost's revenge
- HDU 3341Lost's revenge
- hdu 3341 Lost's revenge
- hdu 3341 Lost's revenge(AC自动机+DP)
- HDU 3341 Lost's revenge(AC自动机+DP)
- 【HDU】3341 Lost's revenge AC自动机+变进制+DP
- Hdu 3341 Lost's revenge (ac自动机+dp+hash)
- HDU - 3341 Lost's revenge(AC自动机+DP)
- [AC自动机+dp+变进制状压] hdu 3341 Lost's revenge
- hdu 3341 Lost's revenge(AC自动机+变进制状压DP)
- HDU 3341 Lost's revenge AC自动机 + 变进制状压DP
- hdu 3341 Lost's revenge (ac自动机+状压dp)
- hdu 3341Lost's revenge(ac自动机+dp)
- hdu 3341 Lost's revenge(dp+Ac自动机)
- HDU 3341 Lost's revenge (AC自动机 + DP)
- HDU 3341-Lost's revenge(AC自动机+DP+hash)
- QFS文件系统-学习记录
- 从文件夹里面读取数据并将结果输出
- 多继承同名隐藏举例
- 关于模式为singTask的activity的bundle问题
- Android Context完全解析
- HDU 3341Lost's revenge
- HDU 1272 小希的迷宫(并查集)
- HTML5实现webApp中图片轮播的效果(一)之基本使用
- UEFI+GPT安装Win10+Archlinux双系统
- Windows7 下安装Theano (Install Theano in Windows 7)
- 什么是qt,QT Creator, QT SDK, QT Designer
- MySQL入门--mysql的语句规范
- 百度地图定位在Activity的实现<百度地图SDK版本 v3.7.3>
- orb算法的理解网上资源收集