蓝桥杯 2016 9 密码脱落

来源:互联网 发布:linux find命令找文件 编辑:程序博客网 时间:2024/06/03 02:18

X星球的考古学家发现了一批古代留下来的密码。
这些密码是由A、B、C、D 四种植物的种子串成的序列。
仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。
由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。
你的任务是:
给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。
输入一行,表示现在看到的密码串(长度不大于1000)
要求输出一个正整数,表示至少脱落了多少个种子。
例如,输入:
ABCBA
则程序应该输出:
0
再例如,输入:
ABDCDCBABC
则程序应该输出:
3
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms

具体参考 http://blog.csdn.net/yyecust/article/details/53976606

//#include <bits/stdc++.h>#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int MAXN = 5000 + 9;char s1[MAXN], s2[MAXN];int dp[2][MAXN];int n;void solve(){    scanf("%s", s1);    int n = strlen(s1);    for (int i = 0; i < n; i++) {        s2[i] = s1[n - i - 1];    }    memset(dp, 0, sizeof(dp));    for (int i = 1; i <= n; i++)    for (int j = 1; j <= n; j++) {        if (s1[i - 1] == s2[j - 1]) {            dp[i%2][j] = dp[(i-1)%2][j - 1] + 1;        } else {            dp[i%2][j] = max(dp[(i-1)%2][j], dp[i%2][j - 1]);        }    }    cout << n - dp[n%2][n] << endl;}int main(){    solve();}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 为什么中国不许卖澳洲小安素 为什么陨石卖不出去 为什么15楼不好卖 为什么药店不卖奥司他韦 小秋不卖 退市股票不卖会怎么样 不卖铺盖打一三国人物 冬天卖什么利润大不压货 为什么医院不卖伊曲康唑 二手房卖不掉急死人 中国为什么不让卖爆炸盐 卖不卖 3d硬金为什么不按克卖 迈之灵为什么不让卖 宝塔糖为什么不让卖 为什么黄道益不能在大陆卖 40年产权公寓卖不掉 为什么处方药不随便卖 王氏保赤丸为啥不让卖 百蕊颗粒药店为什么不让卖 14楼为什么便宜也不好卖 为什么很多药店不卖百蕊颗粒 安康鱼肝为什么不让卖 eve药中国为什么不让卖 21型二踢脚为什么不能卖 凯美瑞混动为什么卖不动 顶层房子为什么不好卖 南宁2019很多房子卖不出去 十月馨药店为什么不明卖 三不问 养龟为什么不能养双 家里为什么不能养双猫 眼科医生不建议割双眼皮 新手为什么不要开双离合 千万不要买雷凌双擎 世上安得双法不负如来不负卿 肿泡眼大夫不建议割双眼皮 双胎为什么医生不建议做四维 双闪灯一直闪关不掉怎么解决 到付邮费是不是双倍 做完双眼皮不能吃什么