• Codeforces 478D Red-Green Towers


    题意:给你红色砖块和绿色分别为n和m块,让这些砖块组成每层递减1的 塔,每一层的颜色必须一样,问你迭到最高层有多少种方法

    解题思路:dp[i][j] 表示第i层用了j个红色砖块。

    解题代码:

     1 // File Name: 478d.cpp
     2 // Author: darkdream
     3 // Created Time: 2015年03月13日 星期五 08时42分21秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 #define maxn 410005
    26 #define M 1000000007
    27 using namespace std;
    28 LL dp[maxn] ;
    29 int main(){
    30     int n , m;
    31     scanf("%d %d",&n,&m);
    32     dp[0] = 1;
    33     int flor  = 1 ; 
    34     for(flor ;;flor ++ )
    35     {
    36        if(flor*(flor+1) /2 <= n + m && (flor+2)*(flor+1)/2 > n + m )
    37            break;
    38     }
    39     for (int i = 1;i <= flor ;i ++)    
    40     {
    41          int mx = i*(i+1)/2;
    42          int tt = min(mx,n);
    43          for(int j = tt ;j >= 0; j --)
    44          {
    45             if(mx -j > m)
    46             {
    47               dp[j] = 0 ; 
    48             }
    49             if(j <= n && j -i >= 0 )
    50                 dp[j] =(dp[j]+dp[j-i]) % M;
    51          }
    52     }
    53     LL sum = 0 ; 
    54     for(int i = 0;i <= n;i ++)
    55     {
    56           sum = (sum + dp[i]) % M ;
    57     }
    58     printf("%I64d
    ",sum);
    59 return 0;
    60 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    http 学习 1-1 chapter1-HTTP概述
    2048 游戏实现原理
    safari 日期对象新建new Date( timeStr ) 参数TimeStr格式
    js
    js 常见弹出框学习
    JS引入CSS文件
    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
    java复制文件 转
    Map键值对,一种思路
    写入excel表格数据
  • 原文地址:https://www.cnblogs.com/zyue/p/4335151.html
Copyright © 2020-2023  润新知