日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

洛谷 P3102 [USACO14FEB]秘密代码Secret Code

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 P3102 [USACO14FEB]秘密代码Secret Code 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

P3102 [USACO14FEB]秘密代碼Secret Code

題目描述

Farmer John has secret message that he wants to hide from his cows; the message is a string of length at least 2 containing only the characters A..Z.

To encrypt his message, FJ applies a sequence of "operations" to it, where an operation applied to a string S first shortens S by removing either some (but not all) of the initial characters or some (but not all) of the final characters from S, after which the original string S is attached either at the beginning or end. For example, a single operation to the string ABC could result in eight possible strings:

AABC ABABC BCABC CABC ABCA ABCAB ABCBC ABCC Given the final encrypted string, please count the number of possible ways FJ could have produced this string using one or more repeated operations applied to some source string. Operations are treated as being distinct even if they give the same encryption of FJ's message. For example, there are four distinct separate ways to obtain AAA from AA.

Print your answer out modulo 2014.

農民約翰收到一條的消息,記該消息為長度至少為2,只由大寫字母組成的字符串S,他通過一系列操作對S進行加密。

他的操作為,刪除S的前面或者后面的若干個字符(但不刪光整個S),并將剩下的部分連接到原字符串S的前面或者后面。如對于S=‘ABC’,共有8總可能的操作結果:

AABC

ABABC

BCABC

CABC

ABCA

ABCAB

ABCBC

ABCC

給出加密后的目標字符串,請計算共有多少種加密的方案。

對于同字符的字符串,加密方案不止一種,比如把AA加密成AAA,共有4種加密方案。將你的答案mod 2014后輸出。

輸入輸出格式

輸入格式:

?

  • Line 1: A single encrypted string of length at most 100.

?

輸出格式:

?

  • Line 1: The number of ways FJ could have produced this string with one or more successive operations applied to some initial string of length at least 2, written out modulo 2014. If there are no such ways, output zero.

?

輸入輸出樣例

輸入樣例#1:
ABABA 輸出樣例#1:
8

說明

Here are the different ways FJ could have produced ABABA:

1. Start with ABA -> AB+ABA 2. Start with ABA -> ABA+BA 3. Start with AB -> AB+A -> AB+ABA 4. Start with AB -> AB+A -> ABA+BA 5. Start with BA -> A+BA -> AB+ABA 6. Start with BA -> A+BA -> ABA+BA 7. Start with ABAB -> ABAB+A 8. Start with BABA -> A+BABA #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define mod 2014 using namespace std; char s[120]; int dp[120][120],f[120][120][120]; int main(){scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++)for(int j=1;j<=len;j++)for(int k=1;i+k-1<=len&&j+k-1<=len&&s[i+k-1]==s[j+k-1];k++)f[i][j][k]=1;for(int i=1;i<=len;i++)for(int j=1;j<=len;j++)dp[i][j]=1;for(int l=2;l<=len;l++)for(int i=1;i+l-1<=len;i++){int j=i+l-1;for(int k=1;k*2<l;k++){if(f[i][i+k][k]) dp[i][j]=(dp[i][j]+dp[i+k][j])%mod;if(f[i][j-k+1][k]) dp[i][j]=(dp[i][j]+dp[i+k][j])%mod;if(f[i][j-k+1][k]) dp[i][j]=(dp[i][j]+dp[i][j-k])%mod;if(f[j-2*k+1][j-k+1][k]) dp[i][j]=(dp[i][j]+dp[i][j-k])%mod;}}cout<<dp[1][len]-1; }

?

轉載于:https://www.cnblogs.com/cangT-Tlan/p/7569629.html

總結

以上是生活随笔為你收集整理的洛谷 P3102 [USACO14FEB]秘密代码Secret Code的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。