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


  • 相关阅读:
    使用字体图标完整步骤
    用position:absolute定位小窗口位于版面正中心
    MySql 技术内幕 (第7章 游标)
    MySql 技术内幕 (第5章 联接与集合操作)
    赋值语句作为判断的条件
    发布订阅模式和观察者模式
    关系代数
    数据库关系代数表达式学习
    软考通过分数
    哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7403888.html
Copyright © 2011-2022 走看看