博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO2.3 Longest Prefix(prefix)
阅读量:6077 次
发布时间:2019-06-20

本文共 957 字,大约阅读时间需要 3 分钟。

hot3.png

        对集合P中的某个元素,假设其长度为length,找出所有与str[i]~str[i+length-1]完全重合的元素,比较ans和i+length的大小,ans=max{ans,i+length },求每一个合适元素下的ans,取最大值,此即为dp[i]。对str每一个位置i(0~str.length)进行遍历,直到在集合P中找不到合适的元素。

 

/*ID: jzzlee1PROG: prefixLANG: C++*///#include
#include
#include
#include
#include
using namespace std;ifstream cin("prefix.in");ofstream cout("prefix.out");int ans;string str;vector
> vec;bool check(int i,int j){ bool flag=1; for(int k=0;k!=vec[j].second;++k) if(str[i+k]!=vec[j].first[k] ) { flag=0; break; } return flag;}int main(){ string s; while(cin>>s&&s!=".") vec.push_back(make_pair(s,s.length())); while(cin>>s) str+=s; int i,j; for(i=0;i!=str.length();++i) { for(j=0;j!=vec.size();++j) { if(i+vec[j].second>str.length()) continue; if(check(i,j)) ans=ans>i+vec[j].second?ans:i+vec[j].second; } if(i+1>ans) break; } cout<
<

转载于:https://my.oschina.net/u/347565/blog/63580

你可能感兴趣的文章
163源报错Hash Sum mismatch 解决方法
查看>>
使用ECMAscript5中的forEach函数遍历数组
查看>>
Linux之MySQL
查看>>
jekins 持续集成手记
查看>>
Android 为应用创建、删除桌面快捷方式
查看>>
Maven如何手动添加依赖的jar文件到本地Maven仓库
查看>>
Oracle安装部署,版本升级,应用补丁快速参考
查看>>
【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面
查看>>
CentOS6.5安装Tab增强版:bash-completion
查看>>
2015华为机试——数字基root
查看>>
Java学习笔记(四):流程控制
查看>>
ios开发--第三方整理
查看>>
【JVM】JVM系列之内存模型(六)
查看>>
MySQL排序原理与案例分析
查看>>
RegexBuddy正则表达式工具
查看>>
rabbitmq 连接測试
查看>>
WPF控件 RichTextBox查找定位匹配字符
查看>>
etcd+calico集群的部署
查看>>
【Java并发编程】并发编程大合集-值得收藏
查看>>
tomcat7禁用catalina.out输出
查看>>