zstu 1052 水题。。模拟

虽然是水题,还是错了一次

View Code
#include<stdio.h>
#include<string.h>
int a[110],b[20][20],ans[100];
int tmp[100][100];
int main()
{
int n,m,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=1;i<=n;i++)
{
if(i%m!=0)
tmp[i/m+1][i%m]=a[i];
else tmp[i/m][m]=a[i];
}
int x;
if(n%m!=0)
{
x=n/m+1;
}
else x=n/m;
if(n%m!=0)
{
for(i=n%m+1;i<=m;i++)
tmp[n/m+1][i]=0;
}
memset(ans,0,sizeof(ans));
int tot=1;
for(i=1;i<=x;i++)
{
for(j=1;j<=m;j++)
{
for(k=1;k<=m;k++)
{
ans[tot]+=tmp[i][k]*b[j][k]; }
tot++;
}
}
if(n%m!=0) n+=m-n%m;
printf("%d",ans[1]);
for(i=2;i<=n;i++)
printf(" %d",ans[i]);
printf("\n");
}
}



posted @ 2011-11-28 23:07  Because Of You  Views(231)  Comments(0Edit  收藏  举报