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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【noip模拟赛3】编码

發(fā)布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【noip模拟赛3】编码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

描述

?

Alice和Bob之間要進(jìn)行秘密通信,他們正在討論如何對信息進(jìn)行加密:

Alice:“不如采用一種很簡單的加密方式:’A’替換成1,’B’替換成2,??,’Z’替換成26?!?/p>

Bob:“這種加密方式太傻了,Alice。如果我想要傳送一個單詞’BEAN’給你,它加密后就是25114。但你有很多種不同的方法來解密,從而得到許多單詞!”

Alice:“你說的是沒錯,但是除了’BEAN’有意義以外,其他解密出來的’BEAAD’、

’YAAD’、’YAN’、’YKD’和’BEKD’都沒有任何含義?!?/p>

Bob:“是的,但是同一個加密后的數(shù)字序列,可能的得到數(shù)以億計的不同解密方案?!?/p>

Alice:“是嗎?有這么多嗎?”

你要幫助Bob編寫一個程序,來說服Alice。對于一個加密后的數(shù)字序列,告訴她確切的解密方案數(shù)。

?

輸入

?

有若干個加密后的數(shù)字序列,每行一個,行數(shù)不超過10,每行的數(shù)字?jǐn)?shù)量不超過10000個。序列一定是符合要求的,例如沒有先導(dǎo)的零和連續(xù)兩個零等情況。數(shù)字間沒有空格。一行一個零表示輸入結(jié)束,這是不需要處理的。

?

輸出

?

對于每個加密后的數(shù)字序列,輸出一行。一個整數(shù),表示解密的不同方案數(shù)。結(jié)果保證在32-bit帶符號整數(shù)(longint)范圍內(nèi)。

?

輸入樣例 1?

25114 1111111111 3333333333 0

輸出樣例 1

6 89 1


很容易想到用dp做 但是我忽略了0 打好了交上去也全是wa。。
只要在原dp加上!=0即可 #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cstring> #include<iostream> using namespace std; //input #define RI(n) scanf("%d",&(n)) #define RII(n,m) scanf("%d%d",&n,&m); #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k) #define RS(s) scanf("%s",s) #define LL long long #define REP(i,N) for(int i=0;i<(N);i++) #define CLR(A,v) memset(A,v,sizeof A) // #define N 10000+5 char a[N]; int dp[N]; int main() {while(RS(a+1),a[1]-'0'){CLR(dp,0);dp[0]=dp[1]=1;for(int i=2;a[i];i++){if(a[i]-'0'!=0)dp[i]=dp[i-1];if( (a[i-1]-'0')*10+a[i]-'0'<=26&&a[i-1]-'0'!=0 )dp[i]+=dp[i-2];}printf("%d\n",dp[strlen(a+1)]);} }

?












轉(zhuǎn)載于:https://www.cnblogs.com/bxd123/p/10500342.html

總結(jié)

以上是生活随笔為你收集整理的【noip模拟赛3】编码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。