博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO--2.3Longest Prefix+DP
阅读量:2227 次
发布时间:2019-05-09

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

很久没做dp了,然后开始看到这题目都不知道该怎么下手了;其实这是一道dp的典型题,每次都可以有多种选择但是不到最后是不知道最优解的。

令dp[i]表示以i为起点的最长前缀,然后dp[i]=max(dp[i+len[j]]+len[j])
当然i+len[j]要小于原字符串的长度。

代码如下:

/*ID:15674811LANG:C++PROG:prefix*/#include
#include
#include
#include
#include
#include
using namespace std;int main(){ ofstream fout("prefix.out"); ifstream fin("prefix.in"); ///ifstream fin("lkl.txt"); char str[220][15]; int cnt=0; while(true) { fin>>str[cnt]; if(str[cnt][0]=='.') break; cnt++; } int len[220]; for(int i=0;i
>s) { strcat(tmp,s); } int k=strlen(tmp); for(int i=k-1;i>=0;i--) for(int j=0;j
k) continue; for(d=i;d
=i+len[j]) dp[i]=max(dp[i+len[j]]+len[j],dp[i]); } fout<
<

转载地址:http://durfb.baihongyu.com/

你可能感兴趣的文章
java中的关键字
查看>>
如果某个方法是静态的,它的行为就不具有多态性
查看>>
优化Hibernate所鼓励的7大措施
查看>>
Java 8系列之重新认识HashMap
查看>>
HashMap 、 ArrayList、String 重写了equals方法 而Object类(比如User)没有重写
查看>>
Servlet的生命周期
查看>>
Object中的getClass()返回的是当前运行的类
查看>>
加载驱动程序的方法
查看>>
深入理解java异常处理机制
查看>>
object类的基本方法
查看>>
回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
查看>>
Dubbo分布式服务框架入门(附工程)
查看>>
两年Java开发工作经验面试总结
查看>>
作为Java面试官--谈谈一年来的面试总结
查看>>
两年Java程序员面试经
查看>>
面试心得与总结---BAT、网易、蘑菇街
查看>>
如何面试有2年java工作经验的应聘人员
查看>>
Java实现简单的递归操作
查看>>
面试Java程序员需具备的11个技能
查看>>
HashMap 和 HashTable 到底哪不同 ?
查看>>