文章标题
来源:互联网 发布:中信国安历史交易数据 编辑:程序博客网 时间:2024/05/18 04:36
洛谷 1470最长前缀 Longest Prefix
有一个字符串S,求他的从s[1]开始的可以被匹配的最长长度。
a[i][k] == j表示第i个字符开始的连续j个字符可以被匹配(即p中有对应的元素)
if( !a[i][k] && !dp[i - a[i][k]]) dp[i] = 1;
注意读入。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char p[205][11];char s[200005] = {},ss[2002];int dp[200005],len[205],flag,l = 1,last = 1;int main(){ int n = 0; while(~scanf("%s",p[++n] + 1)) { if(p[n][1] == '.') break; len[n] = strlen(p[n] + 1); } while(~scanf("\n%s",ss)) { int ll = strlen(ss); for(int i = 0; i <= ll; ++i) { s[i + l] = ss[i]; } l += ll; } dp[0] = 1; for(int i = 1; i <= l; ++i) for(int j = 1; j < n; ++j) { flag = 1; for(int k = 1; k <= len[j] && i - len[j] + k >= 1; ++k) if(s[i - len[j] + k] != p[j][k]) { flag = 0; break; } if(flag && dp[i - len[j]]) { for(int k = 1; k <= len[j]; ++k) dp[i - k + 1] = 1; break; } } for(int i = 1; i <= l; ++i) if(!dp[i]) { printf("%d",i - 1); break; } return 0;}
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- Centos7安装LAMP环境(apache + mysql + php)
- 深入理解ThreadLocal
- next() 与 nextLine()的区别
- 剑指offer--包含min函数的栈
- Ubuntu 16.04下安装ssh远程无法连接的解决方法
- 文章标题
- 欢迎使用CSDN-markdown编辑器
- php和JavaScript实现八大排序算法
- PAT --- 1010. 一元多项式求导 (25)
- Java测试框架Mockito源码分析
- C#泛型约束与调用
- leetcode之二叉树类之二叉树中序遍历运用-----OJ173/230/98/99/285 二叉树迭代器/BST第K小元素/判断BST是否合法/恢复BST/二叉树下个节点
- Failed to decode downloaded font
- 跳跃游戏(一,二)