程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 3613 Best Reward

hdu 3613 Best Reward

編輯:C++入門知識

題目:

鏈接:Best Reward

題意:

題目的實質就是,給你字符數組v,字符串s,字符串由a....z組成,v[0]是a的價值,依次類推,,(一定要分的)把s分成兩個字符串,若是回文其價值是相應的v[i]的和,不是回文,價值為0。求出最大價值。

算法:

EKMP算法。EMP算法詳解:點擊打開鏈接

思路:

。。。。。。。。。。。

代碼:

#include
#include
#include
using namespace std;

char s1[500010],s2[500010];
int sum[500010],next[500010];
int v[30];
int extend1[500010],extend2[500010];

void EKMP(char s[],char t[],int next[],int extend[])//求extend數組的模板
{
    int i,j,p,l;
    int len=strlen(t);
    int len1=strlen(s);
    memset(next,0,sizeof(next));
    memset(extend,0,sizeof(extend));
    next[0]=len;
    j=0;
    while(1+j>t;
    while(t--)
    {
        for(int i=0; i<26; i++)
            cin>>v[i];
        getchar();
        gets(s1);
        int len = strlen(s1);
        sum[0] = 0;
        for(int i=0; i>30;
        for(int i=1; ians)
                ans = temp;
        }
        cout<



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved