zoukankan      html  css  js  c++  java
  • USACO 2007 November Silver Best Cow Line /// oj21653

    题目大意:

    输入n 接下来n行字母 在队头和队尾中选出较小的放入新的队列

    Sample Input

    6
    A
    C
    D
    B
    C
    B

    Sample Output

    ABCBCD

     
    注意相同的情况 先判断内层的大小 输出小的一边
    如 BCADCB -> CADCB -> CADC -> ADC -> DC -> D
     
    这题21653和26220和22713无数提交TLE WA 过程完全没毛病 磨了很久发现是输入的问题
    一开始吸收一直用 getchar(); 但oj系统是Linux 不需要吸收 ,所以WA
    TLE也可能是因为getchar();一直在等待吸收一个字符 导致程序没有结束
    getchar();
    scanf("%c",&ch);
    可以用这种方式代替
    scanf(" %c",&ch);
    即在%c前加一个空格
    #include <bits/stdc++.h>
    using namespace std;
    char a[2005];
    bool judge(int head,int tail)
    {
        //printf("
    %c %c
    ",a[head],a[tail]);
        if(head>=tail) return 0;
        if(a[head]<a[tail]) return 1;
        else if(a[head]>a[tail]) return 0;
        else
            return judge(head+1,tail-1);
    }
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            a[0]=0;
            for(int i=1;i<=n;i++)
                scanf(" %c",&a[i]);
            int head=1,tail=n,cnt=0;
            while(head<=tail)
            {
                if(cnt==80)
                {
                    printf("
    ");
                    cnt=0;
                }
                //printf("
    %c%c
    ",a[head],a[tail]);
                if(a[head]<a[tail])
                    printf("%c",a[head++]);
                else if(a[tail]<a[head])
                    printf("%c",a[tail--]);
                else
                {
                    if(judge(head+1,tail-1)==1)
                        printf("%c",a[head++]);
                    else printf("%c",a[tail--]);
                }
                cnt++;
            }
            printf("
    
    ");
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    java 问题记录
    java 构造方法
    java 接口
    java 抽象类
    java 封装
    java 面向对象
    java 集合小练习 超市库存管理系统
    linux常用指令
    个人简历表格
    html5 表格文档常用指令
  • 原文地址:https://www.cnblogs.com/zquzjx/p/8584206.html
Copyright © 2011-2022 走看看