zoukankan      html  css  js  c++  java
  • 2019年华南理工大学程序设计竞赛(春季赛)-C-六学家的困惑

    题目链接:https://ac.nowcoder.com/acm/contest/625/C

    题意:给定两个字符串,每次只能从两个字符串的两端取字符,求依次取字符后所构成的数字最大为多少。

    思路:思路很简单,比较4个端口,取最大者,若有相等,往里查找。但比赛的时候用模拟写了很久,也没写出来。之后看别人的代码发现好简单。输入a,c字符串,将a,c分别反转之后得到b,d。然后每次比较a,b,c,d中最大的即可,因为string重载的<是符合我们这里的要求,即按字典序比较,得到最大的之后用erase函数删掉取出的字符即可。赛后发现好简单,QAQ,比赛的时候还是要沉下心来好好思考啊。

    AC代码:

    #include<cstdio>
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    int T,len;
    string a,b,c,d;
    
    int main(){
        scanf("%d",&T);
        for(int cas=1;cas<=T;++cas){
            printf("Case #%d: ",cas);
            cin>>a>>c;
            len=a.length()+c.length();
            b=a,d=c;
            reverse(b.begin(),b.end());
            reverse(d.begin(),d.end());
            while(len--){
                string Max=""; int p;
                if(a>Max) Max=a,p=1;
                if(b>Max) Max=b,p=2;
                if(c>Max) Max=c,p=3;
                if(d>Max) Max=d,p=4;
                if(p==1){
                    printf("%c",a[0]);
                    a=a.erase(0,1);
                    b=b.erase(b.length()-1,1);
                }
                else if(p==2){
                    printf("%c",b[0]);
                    b=b.erase(0,1);
                    a=a.erase(a.length()-1,1);
                }
                else if(p==3){
                    printf("%c",c[0]);
                    c=c.erase(0,1);
                    d=d.erase(d.length()-1,1);
                }
                else{
                    printf("%c",d[0]);
                    d=d.erase(0,1);
                    c=c.erase(c.length()-1,1);
                }
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    Android开发过程中遇到的问题集合(—)
    Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 具体解释
    Android中Context具体解释 ---- 你所不知道的Context
    HttpClient
    StretchDIBits使用方法
    int a[3];中a+1与&amp;a+1差别 -- C
    把质量控制工作往前推进(1)——安装sonarqube
    24点经典算法
    linux服务之udevd
    java实现第六届蓝桥杯星系炸弹
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10709070.html
Copyright © 2011-2022 走看看