UVA580CriticalMass

来源:互联网 发布:vb 图片的放大缩小 编辑:程序博客网 时间:2024/06/06 15:20
///UVA580CriticalMass#include<cstdio>#include<cstring>const int maxn = 30;int f[maxn + 5], g[maxn + 5];int main() {f[0] = f[1] = f[2] = 0;g[0] = 1 << 0; g[1] = 1 << 1; g[2] = 1 << 2;for(int n = 3; n <= maxn; n++) {f[n] = 1 << (n - 3);//当i等于1时 for(int i = 2; i <= n - 2; i++) f[n] += g[i - 2] * (1 << (n - i - 2));//累加当i不等于1时的所有情况 g[n] = (1 << n) - f[n];//计算g(n),即没有三个U放在一起的前n个盒子的方案 }int n;while(scanf("%d", &n) == 1 && n) printf("%d\n", f[n]);return 0;} /*450*/

原创粉丝点击