HDU 5095 Linearization of the kernel functions in SVM(模拟)

简介:

主题链接:http://acm.hdu.edu.cn/showproblem.php?

pid=5095


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 + cz^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 + cz^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 + cz^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
hujie   |   We have carefully selected several similar problems for you:   5098  5097  5096  5094  5093 

PS:

一道比較坑的模拟题。

注意1和-1 的情况。


代码例如以下:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    int M;
    int a[17];
    char b[17] = {'#','p','q','r','u','v','w','x','y','z'};
    scanf("%d",&M);
    getchar();
    while(M--)
    {
        for(int k = 1; k <= 10; k++)
        {
            scanf("%d",&a[k]);
        }
        int cont = 0;
        int flag = 0;
        for(int k = 1; k < 10; k++)
        {
            if(a[k]==0)
                continue;
            cont++;
            if(cont == 1)
            {
                if(a[k] != 1 && a[k] != -1)
                    printf("%d%c",a[k],b[k]);
                else if(a[k] == 1)
                    printf("%c",b[k]);
                else if(a[k] == -1)
                    printf("-%c",b[k]);
                flag = 1;
            }
            else
            {
                if(a[k] > 0)
                    printf("+");
                if(a[k] != 1 && a[k] != -1)
                    printf("%d%c",a[k],b[k]);
                else if(a[k] == 1)
                    printf("%c",b[k]);
                else if(a[k] == -1)
                    printf("-%c",b[k]);
                flag = 1;
            }
        }
        if(a[10])
        {
            if(a[10] > 0 && flag)
                printf("+");
            printf("%d",a[10]);
            flag = 1;
        }
        if(!flag)//没有答案
            printf("0");
        printf("\n");
    }
    return 0;
}
/*
99
0 0 0 0 0 0 0 0 0 -1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
-1 0 0 0 0 0 0 0 0 0
-1 -1 -1 -41 -1 -1 -1 -1 -1 -1
-1 5 -2 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 -1 -1 -1 -1 -1
0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 0 0 0 0 0
-1 -1 -1 -1 -1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0
*/


版权声明:本文博客原创文章。博客,未经同意,不得转载









本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4723404.html,如需转载请自行联系原作者


相关文章
|
4月前
|
机器学习/深度学习 算法 Python
Python高级算法——支持向量机(Support Vector Machine,SVM)
Python高级算法——支持向量机(Support Vector Machine,SVM)
93 2
|
22天前
|
存储 语音技术 异构计算
System Generator初体验FIR滤波器(二)
System Generator初体验FIR滤波器
18 1
|
22天前
|
编译器 异构计算
System Generator初体验FIR滤波器(一)
System Generator初体验FIR滤波器
29 1
|
22天前
|
编解码 异构计算
System Generator初体验FIR滤波器(三)
System Generator初体验FIR滤波器
21 1
|
计算机视觉 索引
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
1036 0
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
|
11月前
|
机器学习/深度学习 算法 Python
BP神经网络(Back Propagation Neural Network)算法原理推导与Python实现详解
BP神经网络(Back Propagation Neural Network)算法原理推导与Python实现详解
|
机器学习/深度学习 算法 BI
机器学习算法之——支持向量机(Support Vector Machine, SVM)
支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。
机器学习算法之——支持向量机(Support Vector Machine, SVM)
|
Python
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
1201 0
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
|
编解码 PyTorch 算法框架/工具
YOLOv5的Tricks | 【Trick3】Test Time Augmentation(TTA)
一句话简单的介绍Test Time Augmentation(TTA)就是测试过程中也使用数据增强,官方教程介绍:Test-Time Augmentation (TTA) Tutorial
410 0
|
机器学习/深度学习 算法 数据可视化
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现
315 0
SVM(Support Vector Machines)支持向量机算法原理以及应用详解+Python代码实现

热门文章

最新文章