zoukankan      html  css  js  c++  java
  • 2016蓝桥杯省赛C/C++A组第九题 密码脱落

    题意:

    X星球的考古学家发现了一批古代留下来的密码。 
    这些密码是由A、B、C、D 四种植物的种子串成的序列。 
    仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。 
    由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

    你的任务是: 给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。

    输入一行,表示现在看到的密码串(长度不大于1000) 
    要求输出一个正整数,表示至少脱落了多少个种子。

    例如,输入: 
    ABCBA 
    则程序应该输出: 

    再例如,输入: 
    ABECDCBABC 
    则程序应该输出: 
    3

    分析:贪心。

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 1000 + 10;
    char s[MAXN];
    int main(){
        scanf("%s", s);
        int len = strlen(s);
        int i = 0, j = len - 1;
        int ans = 0;
        while(i <= j){
            if(s[i] == s[j]){
                ++i;
                --j;
            }
            else{
                int ti = i;
                while(ti < j && s[ti] != s[j]){
                    ++ti;
                }
                int tj = j;
                while(tj >= i && s[tj] != s[i]){
                    --tj;
                }
                if(abs(ti - i) < abs(tj - j)){
                    ans += abs(ti - i);
                    i = ti;
                }
                else{
                    ans += abs(tj - j);
                    j = tj;
                }
            }
        }
        printf("%d
    ", ans);
        return 0;
    }
    

      

  • 相关阅读:
    Python 于 webgame 的应用(上)
    TCP Nagle剖析
    配置Windows下的Git 服务器简易教程
    程序员的绘图利器 — Graphviz
    patch的制作和使用
    PyCon China 2012,我们上海见!
    Python 于 webgame 的应用(下)
    TCP接收缓存大小的动态调整
    TCP的TSO处理
    上传压死下载 & 常见TCP选项
  • 原文地址:https://www.cnblogs.com/tyty-Somnuspoppy/p/6680339.html
Copyright © 2011-2022 走看看