您的位置:首页 > 其它

UVA1426-Add Bricks in The Wall

2015-08-19 15:20 465 查看
需要简单的分析一下,上两层的值可以通过隔一层来判断。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<math.h>
#include<vector>
#include<algorithm>
#include<queue>
#include<set>
using namespace std;
int a[11][11];
int main()
{
    int t;
    scanf("%d",&t);;
    while(t--)
    {
        for(int i=1;i<=9;i+=2)
            for(int j=1;j<=i;j+=2)
            scanf("%d",&a[i][j]);

        for(int i=9;i>=2;i--){
            if(i%2==1){
            for(int j=2;j<=i-1;j+=2)
            a[i][j]=(a[i-2][j-1]-a[i][j-1]-a[i][j+1])/2;
            }
            else{
            for(int j=1;j<=i;j++)
            a[i][j]=a[i+1][j]+a[i+1][j+1];
            }
        }

        for(int ii=1;ii<=9;ii++){
            for(int jj=1;jj<=ii;jj++)
            printf(jj!=ii?"%d ":"%d\n",a[ii][jj]);
        }
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: