• poj 1250 Tanning Salon


    一道简单题,思路很简单,用一个数组记住是否有客人来到。用字符 c-'A' 将A~Z映射到数组的下标0~25

    这个是很久以前写的

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {
        char c;
        int n,flag,bed[26],aaa;
        while(1)
        {
                scanf("%d",&n);
            if(n==0)    exit(-1);
            flag=0;aaa=0;
            memset(bed,0,26*sizeof(int));
            getchar();
            while(scanf("%c",&c),c!='\n')
            {
            if(flag<n)
            if(bed[c-65]==-1)    ;
                else if(bed[c-65]==0)    {bed[c-65]=1;flag++;}
                else    {bed[c-65]=0;flag--;}
            else
                if(bed[c-65]==-1)    ;
                else if(bed[c-65]==1)    {bed[c-65]=0;flag--;}
                else    {bed[c-65]=-1;aaa++;}
            
            }
            if(aaa==0)    printf("All customers tanned successfully.\n");
            else    printf("%d customer(s) walked away.\n",aaa);
            
        }
    }

    上面程序对于没有床位的顾客直接让数组中对应元素下标为-1,以后在遇到就不用处理了。

    其实可以更简单的,因为题中说“Customers who leave without tanning always depart before customers who are currently tanning.”。看下面这样getchar()就可以了

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char c;
        int bed,flag[30],n,result;
        while(scanf("%d",&bed)==1 && bed!=0)
        {
            n=0;result=0;
            memset(flag,0,sizeof(flag));getchar();
            while((c=getchar())!='\n')
            {
                if(n<bed){
                    if(!flag[c-'A']) {flag[c-'A']=1;n++;}
                    else    { flag[c-'A']=0;n--; }
                }
                else
                    if(flag[c-'A'])    { flag[c-'A']=0;n--; }
                    else {getchar();result++;}
            }
            if(result==0) printf("All customers tanned successfully.\n");
            else printf("%d customer(s) walked away.\n",result);
        }
    }
  • 相关阅读:
    我太难了
    树状数组模板
    题解 洛谷P1196 【[NOI2002]银河英雄传说】
    poj 2352 & Ural 1028 数星星 题解
    棋盘覆盖 题解
    2015 JSOI冬令营训练 彩色格子 题解
    题解 UVA12716 GCD等于XOR GCD XOR
    第一篇博客
    2019.8.26 小结
    2019.8.24 小结 (关于树状数组,线段树小结)
  • 原文地址:https://www.cnblogs.com/piaomiao1314/p/3078124.html
Copyright © 2020-2023  润新知