posts - 12,  comments - 10,  trackbacks - 0
http://acm.hdu.edu.cn/showproblem.php?pid=2687

#include<stdio.h>
int main()
{
    int n,i,k,j,a[11][11],b[11][11];
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                scanf("%d",&a[i][j]);
        scanf("%d",&k);
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++) //首先求解每循环四次的总和*(k/4)
                b[i][j]=(a[i][j]+a[j][n+1-i]+a[n+1-i][n+1-j]+a[n+1-j][i])*(k/4);
        if(k%4==0)//再求解k%4的结果
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    b[i][j]+=a[i][j];
        else if(k%4==1)
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    b[i][j]+=a[i][j]+a[n+1-j][i];
        else if(k%4==2)
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    b[i][j]+=a[i][j]+a[n+1-j][i]+a[n+1-i][n+1-j];
        else
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    b[i][j]+=a[i][j]+a[n+1-j][i]+a[n+1-i][n+1-j]+a[j][n+1-i];
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++){
                printf("%d",b[i][j]);
                if(j<n)
                printf(" ");}
            printf("\n");
        }
    }
}
这题只要分清对应的转动位置就能求解!还要注意转动顺序!!!

posted on 2009-04-27 20:41 zhoubaozhong 阅读(275) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(3)

随笔档案

杭电!!

搜索

  •  

最新评论

阅读排行榜

评论排行榜