Add bricks in the wall UVA

来源:互联网 发布:模拟地理位置的软件 编辑:程序博客网 时间:2024/05/17 01:33

Think:
1递推公式:
1>奇数行未知元素:a[i][j] = (a[i-2][j-1] - a[i][j-1] - a[i][j+1])/2;
偶数行未知元素:a[i][j] = a[i+1][j] + a[i+1][j+1];
先得到奇数行然后递推偶数行
2反思:
1>紫书备注:模算法
2>下标移动

vjudge题目链接

以下为Accepted代码

#include <bits/stdc++.h>using namespace std;int main(){    int T, i, j;    int v[14][14];    scanf("%d", &T);    while(T--){        memset(v, 0, sizeof(v));        for(i = 1; i <= 5; i++){            for(j = 1; j <= i; j++){                scanf("%d", &v[2*i-1][2*j-1]);            }        }        /*递推奇数行*/        for(i = 5; i > 1; i--){            for(j = 1; j < i; j++){                v[2*i-1][j*2] = (v[2*i-3][j*2-1]-v[2*i-1][j*2-1]-v[2*i-1][j*2+1])/2;            }        }        /*递推偶数行*/        for(i = 8; i > 0; i -= 2){            for(j = 1; j <= i; j++){                v[i][j] = v[i+1][j] + v[i+1][j+1];            }        }        for(i = 1; i <= 9; i++){            for(j = 1; j <= i; j++){                printf("%d%c", v[i][j], j == i? '\n': ' ');            }        }    }    return 0;}
原创粉丝点击