zoukankan      html  css  js  c++  java
  • UVa 1638 Pole Arrangement

    递推。

    设f[柱子数量][从左边能看到的数量][从右边能看到的数量]=方案数

    假设2~i高度的柱子都已经安排好,现在要插入高度为1的柱子。若它放在最左边,左边可见数量+1,放在最右边,右边可见数量+1,放在中间(有i-2个可能位置),左右可见数量不变。

    递推完一个高度i时,假设把所有在场的柱子都拔高1单位高度,此时方案数不变,再加一个高度为1的柱子进去……

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #define LL long long
     8 using namespace std;
     9 const int mxn=30;
    10 LL f[mxn][mxn][mxn];
    11 void init(){
    12     int i,j,k;//有i个方块,从左边看能看到j个,从右边看能看到k个
    13     f[1][1][1]=1;
    14     for(i=1;i<=20;i++){
    15         for(j=1;j<=20;j++){
    16             for(k=1;k<=20;k++){
    17                 f[i][j][k]+=f[i-1][j][k]*(i-2)+f[i-1][j-1][k]+f[i-1][j][k-1];
    18             }
    19         }
    20     }
    21 }
    22 int n,l,r;
    23 int main(){
    24     init();
    25     int T;
    26     scanf("%d",&T);
    27     while(T--){
    28         scanf("%d%d%d",&n,&l,&r);
    29         printf("%lld
    ",f[n][l][r]);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    一个给照片换底色的牛逼网站
    如何写好ppt
    当你迷茫时,就来看看这个视频!
    IPV6地址检测
    性能测试流程
    pycharm中无法以pytest运行
    Mac charles配置完成后无法上网
    Mac Mysql安装过程的各种坑
    python常用模块之——正则re模块
    Jmeter参数化真香
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5872307.html
Copyright © 2011-2022 走看看