这道题我以后再怼 确实还没搞清楚
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int x[10100],y[101],z[10100];
int main()
{
int T,p,q;
int i,j,k;
scanf("%d",&T);
while (T--)
{
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
scanf("%d%d",&p,&q);
for (i=0;i<=p;i++)
scanf("%d",&x[i]);
for (i=0;i<=q;i++)
scanf("%d",&y[i]);
z[0]=x[0];
for(k=p;k>=1;k--)
{
memset(z,0,sizeof(z));
for(j=k;j <= q*(p-k)+p;j++)
{
for(i=0;i <= q;i++)
z[i+j-1] += x[j]*y[i];
}
x[k-1] += z[k-1];
for(i=k;i<=p*q;i++)
x[i] = z[i];
}
int max;
for(i=p*q;i>=0;i--)
if(x[i] != 0) break;
max=i;
for(i=0;i<=max;i++)
printf("%d ",x[i]);
printf("\n");
}
return 0;
}