zoukankan      html  css  js  c++  java
  • 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;
    }
                
    
    
            
    

      

  • 相关阅读:
    window.setInterval
    用gcc/g++编译winsock程序
    Yii 三表关联 角色表、角色权限连接表、权限表
    访问CGI程序时不添加 /cgi-bin/ 目录也可访问
    Linux 目录递归赋权,解决 Linux权限不够
    Linux 下用C语言连接 sqlite
    ORACLE中添加删除主键
    Linux 杀死进程
    Oracle 查询重复数据
    exlipse php 插件安装地址
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4515446.html
Copyright © 2011-2022 走看看