题目:Linearization of the kernel functions in SVM
题意:意思不难懂,就是每次读10个数字,依次作为pqruvwxyz的系数,最后一个数字是常数,然后将表达式输出。
这个题目就是细节比较多。
当系数为0时,就不用输出对应的变量。
当变量的系数为1或-1时,1要省略,但是常数的-1和1是不能省略1的。
再者就是当所有系数都是0时,要保留常数0。
#include<cstdio>
#include<cstring>
int T, a[10];
char s[20]="pqruvwxyz";
int main(){
scanf("%d", &T);
while(T--){
for(int i=0;i<10; i++) scanf("%d", a+i);
bool flag = 0;
for(int i=0;i<10; i++){
if(a[i]){
if(flag && a[i]>0) putchar('+');
flag = 1;
if(i<9){
if(a[i]>0){
if(a[i]!=1) printf("%d",a[i]);
}
else{
if(a[i]!=-1) printf("%d",a[i]);
else putchar('-');
}
putchar(s[i]);
}
else printf("%d",a[i]);
}
}
if(!flag) putchar('0');
puts("");
}
return 0;
}