Problem Description
SVM(Support Vector Machine)is an importantclassification tool, which has a wide range of applications in clusteranalysis, community division and so on. SVM The kernel functions used in SVMhave 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 newvariables p, q, r, u, v, w, the linearization of the function f(x,y,z) isrealized 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 eachdata, there are 10 integer numbers on one line, which are the coefficients andconstant 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 correspondentlinear function with 9 variables in conventional way on one line.
Sample Input
2
0 46 3 4 -5 -22 -8 -32 2427
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 <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const char f[] = "pqruvwxyz";
int main()
{
int t;
int a[15];
scanf("%d", &t);
while (t--)
{
int i;
bool flag = false;
for (i = 0; i<9; i++)
{
scanf("%d", &a[i]);
if (a[i] != 0)
{
if (a[i]<0)
printf("-");
else
if (flag)
printf("+");
if (abs(a[i]) != 1)
printf("%d", abs(a[i]));
printf("%c", f[i]);
flag = true;
}
}
scanf("%d", &a[i]);
if (a[i] != 0)
{
if (a[i]<0)
printf("%d", a[i]);
else
if (flag)
printf("+%d", a[i]);
else
printf("%d", a[i]);
flag = true;
}
if (!flag)
printf("0");
printf("\n");
}
return 0;
}