题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5095
2 0 46 3 4 -5 -22 -8 -32 24 27 2 31 -5 0 0 12 0 0 -49 12
46q+3r+4u-5v-22w-8x-32y+24z+27 2p+31q-5r+12w-49z+12
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 */
HDU 5095 Linearization of the kernel functions in SVM(模拟)
原文地址:http://blog.csdn.net/u012860063/article/details/40712675