• HDU5095——水过——Linearization of the kernel functions in SVM


    Problem Description
    SVM(Support Vector Machine)is an important classification tool, which has a wide range of applications in cluster analysis, community division and so on. SVM The kernel functions used in SVM have many forms. Here we only discuss the function of the form f(x,y,z) = ax^2 + by^2 + cy^2 + dxy + eyz + fzx + gx + hy + iz + j. By introducing new variables p, q, r, u, v, w, the linearization of the function f(x,y,z) is realized by setting the correspondence x^2 <-> p, y^2 <-> q, z^2 <-> r, xy <-> u, yz <-> v, zx <-> w and the function f(x,y,z) = ax^2 + by^2 + cy^2 + dxy + eyz + fzx + gx + hy + iz + j can be written as g(p,q,r,u,v,w,x,y,z) = ap + bq + cr + du + ev + fw + gx + hy + iz + j, which is a linear function with 9 variables.

    Now your task is to write a program to change f into g.
     
    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.
     
    Sample Input
    2 0 46 3 4 -5 -22 -8 -32 24 27 2 31 -5 0 0 12 0 0 -49 12
     
    Sample Output
    46q+3r+4u-5v-22w-8x-32y+24z+27 2p+31q-5r+12w-49z+12
     
    Source
     
    Recommend
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int T;
    int a[11];
    int vis[11];
    char b[12] = "pqruvwxyz";
    int main()
    {
        scanf("%d",&T);
        while(T--){
            memset(vis,0,sizeof(vis));
            for(int i = 1; i <= 10 ; i++){
                scanf("%d",&a[i]);
                if(a[i] == 0)
                    vis[i] = 1;
            }
            if(a[1] == 0&&a[2] ==0&& a[3] ==0&& a[4] ==0&& a[5] ==0&& a[6] ==0&& a[7] ==0&& a[8] ==0&& a[9] ==0&& a[10] == 0){
                printf("0
    ");
                continue;
            }
            int flag = 1;
            for(int i = 1; i <= 10 ; i++){
                if(a[i] == 0) continue;
                if(flag && a[i]){
                    if(i!=10){
                        if(a[i] == 1)
                        printf("%c",b[i-1]);
                        else if(a[i] == -1)
                            printf("-%c",b[i-1]);
                        else 
                           printf("%d%c",a[i],b[i-1]);
                    }
                    else printf("%d",a[i]);
                    flag = 0;
                }
                else {
                    if(a[i] > 0){
                        printf("+");
                        if(i!=10){
                        if(a[i] == 1)
                            printf("%c",b[i-1]);
                        else 
                        printf("%d%c",a[i],b[i-1]);
                        }
                        else printf("%d",a[i]);
                    }
                    else {
                        printf("-");
                        if(i!=10){
                        if(a[i] == -1)
                            printf("%c",b[i-1]);
                        else 
                        printf("%d%c",-a[i],b[i-1]);
                        }
                        else printf("%d",-a[i]);
                    }
                }
            }
            puts("");
        }
        return 0;
    }
                
    
    
            
    

      

  • 相关阅读:
    JS事件冒泡
    iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP
    SQL中的循环、for循环、游标
    采用CDN加速后,如何在程序里获取用户IP地址
    Resharper 的快捷键
    JS防后退跳转
    ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
    Log4net创建日志及简单扩展
    统治世界的十大算法
    ffmpeg save rtsp stream
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4515446.html
Copyright © 2020-2023  润新知