标签:
砖块上的数字最终都可以看作是最后一行的线性组合,独立变元最多9个。
这类题的一般做法,线性组合都可以列出方程然后高斯消元。
对于这道题,只要确定最后一行剩下的4个变量就好了,对于最后一行的j位置,它对上面位置某个数字的和贡献次数
等于它到那个位置路径的方案数,可以发现就是杨辉三角。倒数第二行的数已经足够确定剩下的变量,x到对应位置y的方案是2。
x = (y - xleft - xright)/2.
/********************************************************* * --------------Crispr--------------- * * author AbyssalFish * **********************************************************/ #include<bits/stdc++.h> using namespace std; typedef long long ll; int b[9][9]; //#define LOCAL int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif int T, i, j; scanf("%d",&T); while(T--){ for(i = 6; i--;) scanf("%*d"); for(i = 0; i < 7; i += 2) scanf("%d",b[6]+i); for(i = 0; i < 9; i += 2) scanf("%d",b[8]+i); for(i = 1; i < 9; i += 2){ b[8][i] = (b[6][i-1] - b[8][i-1] - b[8][i+1])>>1; } for(i = 8; i--;){ for(j = 0; j <= i; j++){ b[i][j] = b[i+1][j] + b[i+1][j+1]; } } for(i = 0; i < 9; i++){ for(j = 0; j <= i; j++){ printf("%d%c",b[i][j],j==i?‘\n‘:‘ ‘); } } } return 0; }
UVA 11040 Add bricks in the wall
标签:
原文地址:http://www.cnblogs.com/jerryRey/p/4964567.html