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;
    }
                
    
    
            
    

      

  • 相关阅读:
    线程安全问题
    Apache DBUtils框架 结果处理器
    编写JDBC框架:(策略设计模式)
    Java编写准备数据源
    理解事务的4种隔离级别
    JavaBeans与内省(Introspector)
    getRequestURI,getRequestURL的区别
    JDBC学习笔记——PreparedStatement的使用
    JDBC的编码步骤
    MySQL 完整性约束
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4515446.html
Copyright © 2011-2022 走看看