Codeforces Beta Round #1(A,B)

时间:2023-02-01 23:58:10

A水题,,,求n*m的矩形需要几块a*a才能覆盖完.水题。

注意要用long long

int main(){
    LL n,m,a;
    while(~scanf("%I64d%I64d%I64d",&n,&m,&a)){
            LL num1=0;
            num1=n/a;
            if(n%a!=0) num1++;
            LL num2=0;
            num2=m/a;
            if(m%a!=0) num2++;
            printf("%I64d\n",num1*num2);
    }
   return 0;
}

B 题恶心的字符串

Codeforces Beta Round #1(A,B)

这个 ,,,,呜呜呜呜,,,中间一次他拒绝了我好几次,我就贴了下别人的代码看看有没有问题...最后终于130ms过了.

int main(){
    int n;
    char A[105],B[105],C[105],D[105];
    int num,num1;
    while(~scanf("%d",&n)){
        while(n--){
            scanf("%s",A);
            int i=0;
            num=0;
            num1=0;
            bool flag=false;
            int len=strlen(A);
            if(A[0]=='R') flag=true;
            if(flag){
                for(i=2;i<len;i++){
                    if(A[i]=='C'&&(A[i-1]<='9'&&A[i-1]>='0')) break;
                }
                if(i==len) flag=false;
            }
            if(flag){
                i=1;
                while(A[i]>='0'&&A[i]<='9'){
                    num=num*10+A[i]-'0';
                    i++;
                }
                num1=0;
                i++;
                while(A[i]>='0'&&A[i]<='9'){
                    num1=num1*10+A[i]-'0';
                    i++;
                }
                i=0;
                int temp=num1;
                int m=0;
                while(temp){
                    //printf("m:%d\n");
                    C[i]=temp%26+'A'-1-m;
                    if(m==1&&temp==1) break;
                    m=0;
                    //printf("C:%c\n",C[i]);
                    if(C[i]<'A'){
                        C[i]='Z'+C[i]-'@';
                        m=1;
                    }
                   // printf("%d %d %c %d\n",i,temp%26,C[i],m);
                    i++;
                    temp/=26;
                }
                C[i]='\0';
                for(int j=i-1;j>=0;j--){
                    if(C[j]>='A'&&C[j]<='Z')
                    printf("%c",C[j]);
                }
               printf("%d\n",num);
            }
            else {
                int i=0;
                num=0;
                while(A[i]>='A'&&A[i]<='Z'){
                    num=num*26+(A[i]-'A'+1);
                    i++;
                }
                int num1=0;
                while(A[i]>='0'&&A[i]<='9'){
                    num1=num1*10+A[i]-'0';
                    i++;
                }
                printf("R%dC%d\n",num1,num);
            }
        }
    }
    return 0;
}