本文主要是介绍hdu 5095 Linearization of the kernel functions in SVM【细心题】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5095
题意:现给出你表达式g(p,q,r,u,v,w,x,y,z) = ap+bq+cr+du+ev+fw+gx+hy+iz+j,让你输入t个样例,每个样例输入系数a-i,让你输出表达式
解析:题目不难,就是要细心点
1.从系数不为零的项开始输出
2.全为零输出0
3.中间项的系数为正数的话,要输出’+’
4.考虑系数为1的情况
5.末尾单独考虑
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
using namespace std;
const int maxn = 20;
char a[maxn] = {'p','q','r','u','v','w','x','y','z'};
int b[maxn];
int main()
{int n;cin>>n;while(n--){for(int i=0;i<=9;i++)scanf("%d",&b[i]);int last = -1;for(int i=0;i<10;i++){if(b[i]!=0){last = i;break;}}if(last==-1){puts("0");continue;}for(int i=last;i<9;i++){if(b[i]==0)continue;if(b[i]>0 && i!=last)printf("+");if(b[i]==1)printf("%c",a[i]);else if(b[i]==-1)printf("-%c",a[i]);elseprintf("%d%c",b[i],a[i]);}if(b[9]!=0){if(b[9]>0 && 9!=last)printf("+");printf("%d\n",b[9]);}elseputs("");}return 0;
}
这篇关于hdu 5095 Linearization of the kernel functions in SVM【细心题】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!