zoukankan      html  css  js  c++  java
  • 校内测试-密码破解

    题目:

    主要算法 :  字符串(模式匹配)

    题干:

        文章翻译

    应试策略:  

    1.   刚开始认为规则是样例。结果发现样例是错误的,有‘y’没有按照规则修改
    2.   最后问了格式,对于一篇文章如果有一个长度为1的单词,那么就只有‘I’与‘a’这两种情况,因为a比较容易判断,只需要前面和后面是空格就行,这样贪心得了100分,其它打正解的还没有我跑得快,但是如果不存在冠词a的情况,就WA了

    代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<iostream>
    #define FORa(i,s,e) for(int i=s;i<=e;i++)
    #define FORs(i,s,e) for(int i=s;i>=e;i--)
    #define File(name) freopen(name".in","r",stdin);freopen(name".out","w",stdout);
    #define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),stdin)?EOF:*pa++
    
    using namespace std;
    inline int read();
    char buf[100000],*pa,*pb;
    string s;
    int cnt=1;
    int len;
    
    int main()
    {
        File("whos");
        getline(cin,s),len=s.size();
        string fs=" ";
        int sp=s.find(fs,0);
        while(sp!=-1)
        {
            if(s[sp+1]>='a'&&s[sp+1]<='z'&&s[sp+2]==' ')
            {
                cnt=s[sp+1]-'a';
                break;
            }
            sp++;
            sp=s.find(fs,sp);
        }
        for(int i=0;i<len;i++)
        {
            if(s[i]>='a'&&s[i]<='z')
            {
                 if(s[i]-cnt<'a') s[i]+=26;
                printf("%c",s[i]-cnt);
            }
            else if(s[i]>='A'&&s[i]<='Z')
            {
                if(s[i]-cnt<'A') s[i]+=26;
                printf("%c",s[i]-cnt);
            }
            else printf("%c",s[i]);
        }    
        return 0;
    }
    inline int read()
    {
        register int x(0),f(1);register char c(gc);
        while(c<'0'||c>'9') f=c=='-'?-1:1,c=gc;
        while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=gc;
        return x*f;
    }

    非完美算法:  

        模拟

     正解:

    1.   先看题哈
    2.   找出出现频率最大的字母,然后与E之间制定规则,将所有字母按照规则输出

    总结:

    1.   能不能先看题

  • 相关阅读:
    centos添加图形桌面
    centos 复制并重命名文件
    山东省第八届ACM程序设计大赛总结
    RMQ
    图的深度优先搜索
    ACM知识点清单
    优先队列(priority_queue)
    Contest Print Server
    k8s之证书签发(二)
    k8s环境之bind 9 (一)
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/11309899.html
Copyright © 2011-2022 走看看