hdu4057 Rescue the Rabbit】的更多相关文章

Rescue the Rabbit Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2036    Accepted Submission(s): 591 Problem Description Dr. X is a biologist, who likes rabbits very much and can do everythin…
地址:http://acm.hdu.edu.cn/showproblem.php?pid=4057 题目: Rescue the Rabbit Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2233    Accepted Submission(s): 653 Problem Description Dr. X is a biolo…
Rescue the Rabbit Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1412 Accepted Submission(s): 403 Problem Description Dr. X is a biologist, who likes rabbits very much and can do everything for…
题目大概是给几个DNA片段以及它们各自的权值,如果一个DNA包含某个片段那么它的价值就加上这个片段的权值,同时包含多个相同DNA片段也只加一次,问长度l的DNA可能的最大价值. 与HDU2825大同小异. dp[i][j][S]表示长度i(自动机转移i步).后缀状态为自动机第j个结点.包含的DNA片段为集合S 的DNA最大价值 dp[0][0][0]=0 我为人人转移,从dp[i][j][S]向ATCG四个方向更新dp[i+1][j'][S'] 注意的是要用滚动数组,不然要开上百兆数组. 用滚动…
密码 众所周知,密码在信息领域起到了不可估量的作用.对于普通的登陆口令,唯一的破解 方法就是暴力破解一逐个尝试所有可能的字母组合,但这是一项很耗时又容易被发现的工 作.所以,为了获取对方的登陆口令,在暴力破解密码之前,必须先做大量的准备工作.经 过情报的搜集,现在得到了若干有用信息,形如: "我观察到,密码中含有字符串***." 例如,对于一个10位的密码以及串hello与world,可观察到的字符能的密码组合为 helloworld与worldhello;而对于6位的密码以及观察到的…
题目链接 一个数组开小了一点点,一直提示wa,郁闷,这题比上个题简单一点. #include <iostream> #include <cstring> #include <cstdio> #include <queue> #include <algorithm> #include <cstdlib> using namespace std; #define N 1001 #define INF 1000000 ]; int que[…
Dr. X is a biologist, who likes rabbits very much and can do everything for them. 2012 is coming, and Dr. X wants to take some rabbits to Noah's Ark, or there are no rabbits any more. A rabbit's genes can be expressed as a string whose length is l (1…
挺有意思的一道题目,解法是AC自动机+DP.AC自动机建立fail指针时,一定要注意结点的属性也需要传递.AC自动机结合了trie和kmp的优点.需要注意的是,每个模式串仅计算一次,否则这题很难解. /* 4057 */ #include <iostream> #include <sstream> #include <string> #include <map> #include <queue> #include <set> #inc…
标题效果: 鉴于DNA有一个正确的顺序值.请构造一个长度I的DNA在这个序列使DNA正确的顺序值极大.它被认为是负的输出噼啪. .. IDEAS: 施工顺序是,ac己主动机上走,求最大要用到dp dp[i][j][k] 表示如今构造到了长度 i . 此时的我们把当前字符放在j节点.而且满足了k状态.k是一个10位的2进制状态压缩. 注意这道题上有坑就是一个序列可能有多个权值. 所以不能直接赋值.须要用位或. #include <cstdio> #include <iostream>…
分析 未知定长串中不同已知模板串的出现次数问题,一般做法是AC自动机上dp. 考虑背包,\(dp(i,j,k)\)表示当前串长为\(i\),在AC自动机上对应节点\(j\),已匹配的模板串的状态为\(k\)的情况是否出现.用刷表法向后转移.先枚举不定串长度,再枚举AC自动机上节点,然后枚举已知状态,最后枚举字母边转移. 时间复杂度\(O(l \cdot MaxNode \cdot 2^n \cdot SigmaSize)\).第一维可以滚动,空间复杂度\(O(MaxNode \cdot 2^n)…