zoukankan      html  css  js  c++  java
  • 蓝翔杯子校内赛练习代码

    写的代码保存一下,留作纪念

    第一题

    #include<iostream>
    #include<cstdio>
    using namespace std;
    const int maxn = 1000010;
    int A[maxn];
    int main(void)
    {
        int n;
        cin>>n;
        while(n!=-1)
        {
            for(int i=0;i<n;i++)
            {
                cin >> A[i];
            }
            int pre = 0;
            for(int i=1;i<n;i++)
            {
                if(A[i]!=A[pre])
                {
                    A[++pre]=A[i];
                }
                else 
                {
                    //
                }
            }
            for(int i=0;i<=pre;i++)
            {
                cout << A[i];
                if(i!=pre) cout <<" "; 
            }
            cin >> n;
        }
        return 0;
    } 
    View Code

    第二题

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<string.h>
    using namespace std;
    const int maxn = 1024*1024+10;
    int A[26][maxn];
    int B[26];
    int C[26];
    int ans = 0;
    string pwd[1010];
    string str;
    int main(void)
    {
        int n;
        cin >> str;
        cin >> n;
        for(int i=0;i<n;i++)
        {
            cin >> pwd[i];
        }
        int len = str.length();
        for(int i=0;i<len;i++)
        {
            char ch = str[i];
            if(i!=0)
            {
                for(int j=0;j<26;j++) 
                    A[j][i]=A[j][i-1];
            }
            A[ch-'a'][i]++;
        }
        
        for(int i=0;i<n;i++)//i密码 
        {
            memset(B,0,sizeof(B));
            for(int k=0;k<8;k++)
            {
                B[pwd[i][k]-'a']++;
            }
            for(int k=7;k<len;k++)
            {
                bool flag = true;
                for(int j=0;j<26;j++)
                {
                    if(k==7)
                    {
                        C[j] = A[j][k];
                    }
                    else
                    {
                        C[j] = A[j][k]-A[j][k-8];
                    }
                }
                for(int j=0;j<26;j++)
                {
                    if(C[j]!=B[j])
                    {
                        flag = false; 
                        break;
                    }
                }
                if(flag==true) ans++;
            }
        }
        cout << ans;
        return 0;
    }
    View Code

    第三题

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int m,n,w;
    int x1,y1;
    int x2,y2;
    void makePoint1()
    {
        y1 = (m+w-1)/w;
        if(y1%2==0)
        {
            x1 = w - (m-(y1-1)*w)+1;
        }
        else
        {
            x1 = m-(y1-1)*w;
        }
    }
    void makePoint2()
    {
        y2 = (n+w-1)/w;
        if(y2%2==0)
        {
            x2 = w-(n-(y2-1)*w)+1;
        }
        else 
        {
            x2 = n-(y2-1)*w;
        }
    }
    int main(void)
    {
        cin >> w >> m >> n;
        makePoint1();
        makePoint2();
        int ans = abs(x1-x2)+abs(y1-y2);
        cout << ans; 
        return 0;    
    } 
    View Code

    第四题

    #include<iostream>
    #include<algorithm>
    #include<map>
    #include<string> 
    using namespace std;
    map<string,string> table;
    map<string,int> sum; 
    const int maxn = 50010;
    int M,N;
    string A[maxn];
    string B[maxn];
    int main(void)
    {
        table["A"]=table["B"]=table["C"]="2";
        table["D"]=table["E"]=table["F"]="3";
        table["G"]=table["H"]=table["I"]="4";
        table["J"]=table["K"]=table["L"]="5";
        table["M"]=table["N"]=table["O"]="6";
        table["P"]=table["Q"]=table["R"]=table["S"]="7";
        table["T"]=table["U"]=table["V"]="8";
        table["W"]=table["X"]=table["Y"]=table["Z"]="9";
        cin >> N >> M;
        for(int i=0;i<N;i++) 
        {
            cin >> A[i];
        }
        for(int i=0;i<M;i++)
        {
            cin >> B[i];
            sum[B[i]]=0;
        }
        for(int i=0;i<N;i++)
        {
            string hand = "";
            for(int k=0;k<A[i].length();k++)
            {
                string ch = A[i].substr(k,1);
                ch = table[ch];
                hand+=ch;
            }
            //cout << hand<<endl;
            sum[hand]++;
        }
        for(int i=0;i<M;i++)
        {
            cout << sum[B[i]];
            if(i!=M-1) cout<<" "; 
        } 
        return 0;
    }
    View Code

    第五题

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<string>
    #include<cstring>
    using namespace std;
    bool used[26];
    bool have[26];
    char ans[6][6];
    string key;
    int main(void)
    {
        cin >> key;
        for(int i=0;i<key.length();i++)
        {
            if(key[i]=='J') key[i]='I';
            else
            {
                have[key[i]-'A']=true;
            }
        }
        memset(used,0,sizeof(used));
        used['J'-'A']=true;
        int pos=0;
        for(int i=0;i<key.length();i++)
        {
            int k = key[i]-'A';
            if(have[k]==true&&used[k]==false)
            {
                used[k]=true;
                int x = pos/5;
                int y = pos%5;
                ans[x][y]='A'+k;
                pos++;
            }
        }
        for(int i=0;i<26;i++)
        {
            if(used[i]==false)
            {
                int x = pos/5;
                int y = pos%5;
                ans[x][y]='A'+i;
                pos++;
            }
        }
        for(int i=0;i<5;i++)
        {
            for(int j=0;j<5;j++)
            {
                cout << ans[i][j];
            }
            if(i!=5) cout << endl;
        }
        return 0;    
    } 
    View Code

    第六题

    #include<stdio.h>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    const int maxn = 100010;
    int A[maxn],N;
    int len[maxn];
    int main(void)
    {
        cin >> N;
        for(int i=0;i<N;i++)
        {
            cin >> A[i];
            len[i]=1;
        }
        for(int i=1;i<N;i++)
        {
            for(int k=0;k<i;k++)
            {
                if(A[k]<A[i] && len[k]+1>len[i])
                {
                    len[i] = len[k]+1; 
                }
            }
        }
        int ans = N-len[N-1];
        cout << ans;
        return 0;    
    } 
    View Code

    第七题

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    const int maxn = 100000+10;
    int n,ans=0;
    int X[maxn],Y[maxn];
    int main(void)
    {
        cin >> n;
        for(int i=0;i<n;i++) cin >>X[i]>>Y[i];
        for(int i=0;i<n;i++)
        {
            for(int j=i+1;j<n;j++)
            {
                if(X[i]+X[j]==Y[i]+Y[j]) ans++;
            }
        }
        cout << ans;
        return 0;
    }
    View Code

    第八题

    #include<iostream>
    #include<algorthm>
    #include<cstdio>
    using namespace std;
    int n
    int main(void)
    {
        return 0;
    }
    View Code
  • 相关阅读:
    【Quartz】常用方法的使用方式(三)
    【Quartz】实现接口封装化(二)
    【Quartz】定时器初步实验(一)
    数据库和ado连接语句的使用总结
    PMP 德尔菲技术
    java 事务解释。
    防盗链--解释
    java月利率计算(等额本息贷款)
    java 日志的数据脱敏
    MDC 输出线程信息帮助定位问题
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/10110075.html
Copyright © 2011-2022 走看看