USACO :Longest Prefix解题报告
来源:互联网 发布:java 获取今天年月日 编辑:程序博客网 时间:2024/05/11 21:34
一维的dp,设dp[i]表示主串S中从i开始的最长的可组成的前缀,dp[1]就是所求,状态转移方程:
{dp[i]=max{dp[j]+j-i} 其中:i 到 j-1 的字串是属于集合P 且 j 要满足 i<j && j< n && j<=i+10(最后这个限制很重要)
USER: li xiaopeng [xpli1]TASK: prefixLANG: C++Compiling...Compile: OKExecuting... Test 1: TEST OK [0.000 secs, 3708 KB] Test 2: TEST OK [0.011 secs, 3708 KB] Test 3: TEST OK [0.000 secs, 3708 KB] Test 4: TEST OK [0.022 secs, 3708 KB] Test 5: TEST OK [0.065 secs, 3708 KB] Test 6: TEST OK [0.464 secs, 3724 KB]All tests OK.Your program ('prefix') produced all correct answers! This is yoursubmission #9 for this problem. Congratulations!
/*ID: xpli1PROG: prefixLANG: C++*/
#include <iostream>#include <fstream>#include <string>
using namespace std;
#define IN fin#define OUT fout#define max(a,b) (((a) > (b)) ? (a) : (b))
ifstream fin ("prefix.in", ios::in);ofstream fout("prefix.out",ios::out);
string P[201];string S;int max_len;int dp[200001];
int main(){
string temp;
int i,j,k,index = 0;
while(IN >> temp, temp != ".") { P[index++] = temp; }
while(IN >> temp) { S += temp; }
int lens = S.length();
for(i = lens - 1; i >= 0; i--){
for(j = i + 1; j <= lens && j <= i + 10; j++){
for(k = 0; k < index; k++){
if(P[k].length() != j-i) continue; if(S.compare(i,j-i,P[k]) == 0) { dp[i] = max(dp[i],dp[j] + j - i); } } } }
OUT << dp[0] << endl;
return 0;}
- USACO :Longest Prefix解题报告
- Longest Common Prefix解题报告
- Longest Common Prefix ——解题报告
- LeetCode解题报告--Longest Common Prefix
- [leetcode] 14. Longest Common Prefix 解题报告
- [LeetCode] Longest Common Prefix 解题报告
- [Leetcode] 14. Longest Common Prefix 解题报告
- [LeetCode] Longest Common Prefix 解题报告
- leetcode解题报告14. Longest Common Prefix
- [LeetCode 解题报告]014. Longest Common Prefix
- 【LeetCode】Longest Common Prefix 解题报告
- Leetcode Longest Common Prefix 解题报告
- usaco: Longest Prefix
- USACO Longest Prefix,DP
- usaco Longest Prefix
- USACO-Longest Prefix
- USACO Longest Prefix
- usaco Longest Prefix
- Log4C++
- mysql alter 语句用法,添加、修改、删除字段等
- mssql判断一个函数名是否存在脚本sql
- 在世界杯里糜烂
- OpenCV学习笔记(15)使用OpenGL显示双目视觉三维重构效果
- USACO :Longest Prefix解题报告
- Oracle表查询
- MVC HtmlHelper类的方法总结
- 解决Server.UrlEncode和客户端的decodeURI问题
- 今天在实现ToolTip时发生的 0xfeeefeee问题,单击static控件时不能弹出提示问题
- PHP
- oracle 存储过程学习笔记
- PHP 应该注意的
- C#正则表达式判断输入日期格式是否正确