zoukankan      html  css  js  c++  java
  • 天梯赛6and模拟赛

    7-87 检查密码 (15分)

    题意:就是根据给的字符串判断,进行输出。

    题解:就是根据字符串的遍历找到是否有数字或者字母进行标记,特别主要要特判都是点的情况,需要输出完美。

    代码:

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        string s;
        getchar();
        int tag1=0,tag2=0,tag3=0,tag4=0;
        while(n--){
            getline(cin,s);
              if(s.length()<6){
                cout<<"Your password is tai duan le."<<endl;
            }else {
            for(int i=0;i<s.length();i++){
                if(s[i]>='0'&&s[i]<='9'){
                    tag1=1;
                }
                else if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){
                    tag2=1;
                }
                else if(s[i]=='.'){
                    tag3=1;
                }
                else{
                    tag4=1;
                }
            }
          if(tag4==1){
                cout<<"Your password is tai luan le."<<endl;
            }else if(tag2==1&&tag1==0){
                cout<<"Your password needs shu zi."<<endl;
            }else if(tag1==1&&tag2==0){
                cout<<"Your password needs zi mu."<<endl;
            }
            else{
                cout<<"Your password is wan mei."<<endl;
            }
            }
            tag1=0,tag2=0,tag3=0,tag4=0;
        }
        return 0;
    }

    7-9 关于堆的判断 (25分)

    题意:给定序列和输入判断是对的还是错的。

    题解:主要难点是小顶堆的建立,只要把小顶堆建立好了,然后还要知道树的定义a[k]的左子树是a[k/2]右子树是a[k/2+1],再根据输入的字符串判断条件即可。

    代码:

    #include <iostream>
    using namespace std;
    const int MAX = 1002;
    int a[MAX];
    int n,m;
    int find(int x){
        for (int i = 1; i <= n;i++){
            if(a[i]==x) return i;
        }
        return 0;
    }
    int main(){
        cin >> n >> m;
        for (int i = 1; i <= n;i++){
            cin >> a[i];
            int k=i;
            while(k>1&&a[k]<a[k/2]){//小顶堆的概念,建立小顶堆 
                swap(a[k],a[k/2]);
                k/=2;
            }
        }
    //    for(int i=1;i<=n;i++){
        //    cout<<a[i];
    //    }
        while(m--){//判断 
            int x;
            cin >> x;
            string s;
            cin >> s;
            if(s=="is"){
                string ss;
                cin >> ss;
                if(ss=="the"){
                    string sss;
                    cin >> sss;
                    if(sss=="root"){
                        if(a[1]==x) cout << "T" << endl;
                        else cout << "F" <<endl;
                    }
                    else{
                        string s1;
                        int xx;
                        cin >> s1 >> xx;
                        if(find(x)==find(xx)/2) cout << "T" << endl;
                        else cout << "F" << endl;
                    }
                }
                else if(ss=="a"){
                    string s1,s2;
                    int xx;
                    cin >> s1 >> s2 >> xx;
                    if(find(x)/2==find(xx)) cout << "T" << endl;
                    else cout << "F" << endl;
                }
            }
            else if(s=="and"){
                int xx;
                string s1,s2;
                cin >> xx >> s1 >> s2;
                if(find(x)/2==find(xx)/2) cout << "T" << endl;
                else cout << "F" << endl;
            }
        }
        return 0;
    } 
  • 相关阅读:
    数的划分终极版--背包法解决各类数的划分
    128.最长公共子序列
    整数划分类型题目--专练
    主函数
    LED类代码
    APM2.8地面站下载地址
    多文件函数调用
    流水灯
    APM的3DR无线数传的安装和调试
    闪烁的LED灯
  • 原文地址:https://www.cnblogs.com/liyongqi/p/14021935.html
Copyright © 2011-2022 走看看