组队赛130926

来源:互联网 发布:cisco2960g 端口闪黄灯 编辑:程序博客网 时间:2024/05/16 06:04

A题题意:给出n个数,给出[L,R]区间,把区间内的战士消灭掉,并且区间无重复,分别求出L左边R右边第一个存活的位置

思路:因为区间无重复,所以直接更新左端点和右端点

理解题目错了,以为是从左边1开始数到L-1第一个存活的位置,原来是从L-1开始数到1

代码:

#include <iostream>#include <stdio.h>#include <cmath>#include <cstring>#include <algorithm>using namespace std;const int M=100010;int l[M],r[M];int main(){    int n,m;    while(scanf("%d%d",&n,&m),n|m)    {        for(int i=1; i<=n; i++)        {            l[i]=i-1;            r[i]=i+1;        }        int s,e;        while(m--)        {            scanf("%d%d",&s,&e);            int ll=l[s];            int rr=r[e];            if(ll==0)printf("* ");            else printf("%d ",ll);            if(rr==n+1)printf("*\n");            else                printf("%d\n",rr);            r[ll]=rr;            l[rr]=ll;        }         printf("-\n");    }    return 0;}


I题真的是一大水题呀,直接模拟就行,可是我还是出了好多错,连我都对自己无语了

代码:

#include<iostream>#include<cstdio>#include<cstring>#include <cmath>using namespace std;char a[1005];char ss[5][1005];int n;int main(){    char s[20];    while(scanf("%d",&n)&&n!=0)    {        scanf("%s",s);        if(s[0]=='S')        {            scanf("%s",a);            int l=strlen(a);            for(int j=1; j<=3; j++)            {                for(int i=0; i<l; i++)                {                    if(j==1)                    {                        if(a[i]=='1')                            printf("*.");                        else if(a[i]=='2')                        {                            printf("*.");                        }                        else if(a[i]=='3')                        {                            printf("**");                        }                        else if(a[i]=='4')                            printf("**");                        else if(a[i]=='5')                            printf("*.");                        else if(a[i]=='6')                            printf("**");                        else if(a[i]=='7')                            printf("**");                        else if(a[i]=='8')                            printf("*.");                        else if(a[i]=='9')                            printf(".*");                        else if(a[i]=='0')                            printf(".*");                        if(i!=l-1)                            printf(" ");                    }                    else if(j==2)                    {                        if(a[i]=='1')                            printf("..");                        else if(a[i]=='2')                            printf("*.");                        else if(a[i]=='3')                            printf("..");                        else if(a[i]=='4')                            printf(".*");                        else if(a[i]=='5')                            printf(".*");                        else if(a[i]=='6')                            printf("*.");                        else if(a[i]=='7')                            printf("**");                        else if(a[i]=='8')                            printf("**");                        else if(a[i]=='9')                            printf("*.");                        else if(a[i]=='0')                            printf("**");                        if(i!=l-1)                            printf(" ");                    }                    else if(j==3)                    {                        if(a[i]=='1')                            printf("..");                        else if(a[i]=='2')                            printf("..");                        else if(a[i]=='3')                            printf("..");                        else if(a[i]=='4')                            printf("..");                        else if(a[i]=='5')                            printf("..");                        else if(a[i]=='6')                            printf("..");                        else if(a[i]=='7')                            printf("..");                        else if(a[i]=='8')                            printf("..");                        else if(a[i]=='9')                            printf("..");                        else if(a[i]=='0')                            printf("..");                        if(i!=l-1)                            printf(" ");                    }                }                printf("\n");            }        }        else        {            int l;            getchar();            for(int i=0; i<3; i++)            {                gets(ss[i]);                l=strlen(ss[i]);            }            string aa;            for(int i=0; i<l; i++)            {                aa="";                aa+=ss[0][i];                aa+=ss[0][i+1];                aa+=ss[1][i];                aa+=ss[1][i+1];                aa+=ss[2][i];                aa+=ss[2][i+1];                if(aa=="*.....")printf("1");                else if(aa=="*.*...")printf("2");                else if(aa=="**....")printf("3");                else if(aa=="**.*..")printf("4");                else if(aa=="*..*..")printf("5");                else if(aa=="***...")printf("6");                else if(aa=="****..")printf("7");                else if(aa=="*.**..")printf("8");                else if(aa==".**...")printf("9");                else if(aa==".***..")printf("0");                i+=2;            }            printf("\n");        }    }    return 0;}

K题

代码:

#include <iostream>#include <stdio.h>#include <cmath>#include <cstring>#include <algorithm>using namespace std;int main(){    int a,b,c;    while(scanf("%d%d%d",&a,&b,&c)!=EOF)    {        if(!a && !b && !c)break;        if(a>b)swap(a,b);        if(a>c)swap(a,c);       if(b>c)swap(b,c);        //cout<<a<<" "<<b<<" "<<c<<endl;        if(a==b && b==c && a==c)        {            if(a==13)            printf("*\n");            else            printf("%d %d %d\n",a+1,b+1,c+1);        }        else if(a==b)        {            if(c==13)            printf("1 %d %d\n",a+1,a+1);            else            printf("%d %d %d\n",a,a,c+1);        }        else if(b==c)        {            if(a+1==b)            {                if(b==13)                printf("1 1 1\n");                else                printf("%d %d %d\n",b,c,b+1);            }            else            printf("%d %d %d\n",a+1,c,c);        }        else if(a!=b && b!=c && a!=c)        {            printf("1 1 2\n");        }    }    return 0;}