2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落
生活随笔
收集整理的這篇文章主要介紹了
2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
X星球的考古學家發現了一批古代留下來的密碼。
這些密碼是由A、B、C、D 四種植物的種子串成的序列。
仔細分析發現,這些密碼串當初應該是前后對稱的(也就是我們說的鏡像串)。
由于年代久遠,其中許多種子脫落了,因而可能會失去鏡像的特征。
你的任務是:
給定一個現在看到的密碼串,計算一下從當初的狀態,它要至少脫落多少個種子,才可能會變成現在的樣子。
輸入一行,表示現在看到的密碼串(長度不大于1000)
要求輸出一個正整數,表示至少脫落了多少個種子。
例如,輸入:
ABCBA
則程序應該輸出:
0
再例如,輸入:
ABDCDCBABC
則程序應該輸出:
3
資源約定:
峰值內存消耗 < 256M
CPU消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。
所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。
注意: main函數需要返回0
注意: 只使用ANSI C/ANSI C++ 標準,不要調用依賴于編譯環境或操作系統的特殊函數。
注意: 所有依賴的函數必須明確地在源文件中 #include , 不能通過工程設置而省略常用頭文件。
提交時,注意選擇所期望的編譯器類型。
代碼
#include <stdio.h> #include <cstring> #include <algorithm>using namespace std;int dfs(char *s, int left, int right,int cnt); char s[1000]; int main(int argc, const char * argv[]) {scanf("%s",&s);int len=strlen(s);int ans=dfs(s,0,len-1,0);printf("%d\n",ans);return 0; }int dfs(char *s, int left, int right,int cnt) {if(left>=right)return cnt;if(*(s+left)!=*(s+right))//兩端不等return min(dfs(s,left+1,right,cnt+1),dfs(s,left,right-1,cnt+1));elsereturn dfs(s,left+1,right-1,cnt); } #include <stdio.h> #include <iostream> #include <cstring> #include <algorithm> using namespace std; char s[1000];char *rev(char *s) {int len = strlen(s);//sizeof(s) / sizeof(char);char *ans = (char*)malloc(len* sizeof(char));//(char *) malloc(sizeof(s));for (int i = 0; i < len; ++i) {ans[i] = s[len - 1 - i];}return ans; }int lcs(const char *s1, const char *s2,int len) {int dp[len][len];for (int i = 0; i < len; ++i) {if(s1[i]==s2[0])dp[0][i]=1;else dp[0][i]=(i==0?0:dp[0][i-1]);}for (int j = 0; j < len; ++j) {if(s2[j]==s1[0])dp[j][0]=1;else dp[j][0]= (j==0 ? 0:dp[j-1][0]);}for (int i = 1; i < len; ++i) {for (int j = 1; j < len; ++j) {if(s2[i]==s1[j])dp[i][j]= dp[i-1][j-1]+1;else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}return dp[len-1][len-1]; }int main(int argc, const char *argv[]) {scanf("%s", &s);int len = strlen(s);int l = lcs(s, rev(s),len);printf("%d",len-l);return 0; }總結
以上是生活随笔為你收集整理的2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - I. 密码脱落的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 征战蓝桥 —— 2016年第七届 ——
- 下一篇: s3c2440移植MQTT