6.7


# include<stdio.h>
int a[50000]={0} ,b[50000]={0};
int d[50000]={0};            //数组不够大容易导致错误
char c[50000];
int main()                              //二维数组能精准定位每一个坐标 这是两个一维数组做不到的 但是当测试用据很大时 使用二维数组会超出规定内存


{
int N,Q,i,j,h,sum,x=0,y=0;
scanf("%d %d",&N,&Q);
getchar();    //特别是字符 数字来回输入时 一定要吸收回车 不然会出问题
for(i=1;i<=N;i++)
{
a[i]=i;
}

for(i=1;i<=N;i++)
{
b[i]=i;
}

for(i=1;i<=Q;i++)
{
scanf("%c %d",&c[i],&d[i]) ;
getchar();
}

for(i=1;i<=Q;i++)      
{
sum = 0;

。。。。。。。。。。。。
if(c[i]=='R' )
{
           if(a[d[i]] != 0)      // 判断是不是上面出现过的行列
             {
                    for(j=1;j<=N;j++)
                     {
                        sum=sum+ (N-y)*a[d[i]] +b[j] ;  
                        a[d[i]]=0 ;


                        }
                 x=x+1;

              }
                else  //出现过的行列 价值直接为0
               {
                             sum = 0;

                    }
}
else
{
             if(b[d[i]] != 0)
                  {

                            for(h=1;h<=N;h++)
                       {
                                sum = sum +a[h] +(N-x) * b[d[i]];
                               b[d[i]]=0;
                                       }

                        y = y+1;
                      }
                     else   //出现过的行列 价值直接为0
                             {
                                   sum = 0;
                               }

}

printf("%d",sum);
printf(" ");
}
return 0;
}

原文地址:https://www.cnblogs.com/wshyj/p/6023384.html