首页 > 其他 > 详细

SWPU-ACM集训队周赛之组队赛(3-11) C题题解

时间:2017-03-11 23:15:31      阅读:263      评论:0      收藏:0      [点我收藏+]

点这里去看题

 

模拟,注意细节

 

#include<stdio.h>
#include<string.h>
int main()
{
    int T,n,i,j,ct,q[1010];  //q[]储存正负信息
    scanf("%d",&T);
    while(T--)
    {
        char a[1010],b[1010];
        memset(q,0,sizeof(q));
        scanf("%d",&n);
        getchar();    //读掉回车(换行符)
        for(i=0;i<n;i++)
            scanf(" %c",&a[i]);
        ct=-1;
        for(i=0;i<n;i++)    
        {
            if(a[i]==0)
                b[i]=a[i];
            if(a[i]==1)    
            {
                q[i]=ct;
                if(ct==-1)
                    ct=1;
                else if(ct==1)
                    ct=-1;
                b[i]=a[i];
            }
        }
        ct=-1;
        for(i=0;i<n;i++)
        {
            if(b[i]==0 && b[i+1]==0 && b[i+2]==0 && b[i+3]==0)  //连续4个0的情况
            {
                b[i+3]=V;      
                q[i+3]=ct;
                if(ct==-1)
                    ct=1;
                else if(ct==1)
                    ct=-1;
                if(q[i-1]!=q[i+3])    //极性不同则添加调节脉冲B
                {
                    b[i]=B;
                    q[i]=q[i+3];
                }
 
            }
        }
        for(i=0;i<n;i++)
        {
            if(q[i]==-1)
                printf("-");
            if(q[i]==+1)
                printf("+");
            printf("%c",b[i]);
        }
        printf("\n");
    }
    return 0;
}

 

SWPU-ACM集训队周赛之组队赛(3-11) C题题解

原文:http://www.cnblogs.com/benTuTuT/p/6536436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!