hdu 5095 Linearization of the kernel functions in SVM(模拟,分类清楚就行)

题意:

INPUT:

The input of the first line is an integer T, which is the number of test data (T<120). Then T data follows. For each data, there are 10 integer numbers on one line, which are the coefficients and constant a, b, c, d, e, f, g, h, i, j of the function f(x,y,z) = ax^2 + by^2 + cy^2 + dxy + eyz + fzx + gx + hy + iz + j.

 

OUTPUT:

For each input function, print its correspondent linear function with 9 variables in conventional way on one line.

 

样例:

2
0 46 3 4 -5 -22 -8 -32 24 27                         --->                        46q+3r+4u-5v-22w-8x-32y+24z+27

2 31 -5 0 0 12 0 0 -49 12                             --->                        2p+31q-5r+12w-49z+12

 

代码:

char b[15]={'p','q','r','u','v','w','x','y','z'};
int a[15];
int T;

int main(){
    //freopen("test.in","r",stdin);
    cin>>T;
    while(T--){
        rep(i,0,9) scanf("%d",&a[i]);
        int c=-1;
        rep(i,0,8) if(a[i]!=0) {c=i; break;}
        if(c==-1){
            printf("%d\n",a[9]);
            continue;
        }
        if(abs(a[c])==1)
            if(a[c]>0) printf("%c",b[c]); else printf("-%c",b[c]);
        else
            printf("%d%c",a[c],b[c]); ++c;
        rep(i,c,8){
            if(a[i]==0) continue;
            if(abs(a[i])==1)
                if(a[i]==1) printf("+%c",b[i]); else printf("-%c",b[i]);
            else
                if(a[i]>0) printf("+%d%c",a[i],b[i]); else printf("%d%c",a[i],b[i]);
        }
        if(a[9]!=0){
            if(a[9]>0) printf("+%d\n",a[9]); else printf("%d\n",a[9]);
        }
        else
            printf("\n");
    }
    //fclose(stdin);
}

 

posted @ 2014-11-09 15:17  fish7  阅读(257)  评论(0编辑  收藏  举报