zoukankan      html  css  js  c++  java
  • HDU 5095--Linearization of the kernel functions in SVM【模拟】

    Linearization of the kernel functions in SVM

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 2232    Accepted Submission(s): 598


    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
     

    最烦做的就是模拟题 ,恶心啊。。。

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <stack>
    #include <iostream>
    using namespace std;
    
    char str[] = {'p', 'q', 'r', 'u', 'v', 'w', 'x', 'y', 'z', ''};
    int a[15];
    
    int main (){
        int T;
        scanf("%d", &T);
        while(T--){
            for(int i = 0; i < 10; ++i)
                scanf("%d", &a[i]);
            int ans = 0;
            int flag = 0;
            for(int i = 0; i < 9; ++i){
    
                if(a[i] == 0) continue;
                if(a[i] == 1 ){
                    if(flag)
                    printf("+");
                    else
                        flag++;
                    printf("%c", str[i]);
                    continue;
                }
                if(a[i] == -1){
                    printf("-%c", str[i]);
                    flag++;
                    continue;
                }
                if(a[i] > 0){
                    if(flag)
                        printf("+");
                    else
                        flag++;
                    printf("%d%c", a[i], str[i]);
                }
                else
                    printf("%d%c", a[i], str[i]), flag++;
                }
                if(a[9] > 0){
                    if(flag)
                        printf("+");
                    else
                        flag++;
                    printf("%d", a[9]);
                }
                else if( a[9] < 0){
                    flag ++;
                    printf("%d", a[9]);
                }
                if(!flag)
                    printf("0");
                printf("
    ");
        }
        return 0;
    }
    


  • 相关阅读:
    linux下常见的网络相关参数简介
    nginx编译安装
    mysql主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
    mysql报错Do you already have another mysqld server running on socket
    php编译安装
    APP测试の: MonKeyRunner___录制与回放
    Python生成指定容量文本文档
    django 误人子弟快速上手
    curl 使用方法
    APP 自动化框架实现结构图
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7403888.html
Copyright © 2011-2022 走看看