zoukankan      html  css  js  c++  java
  • hdu--4504--又是dp啊<方案决策数>

    其实 这题 有点类似 以前做过的一题

    hdu的1028 就是给你一个数n 然后让你求出能满足等于它的加法等式

    也是个dp[x][y]的状态

    这边的话 就是dp[x][y]表示打到第x次进攻的时候 我得到了y分的进攻策略有多少种

    然后转移方程 不难dp[i][j] += dp[i-1][j-1]     dp[i][j]+= dp[i-1][j-2]  dp[i][j] += dp[i-1][j-3]

    然后就是对于进攻0次 进行下特判就好..

    哎 去找班主任请假了 -.-

     1 #include <iostream>
     2 using namespace std;
     3 
     4 const int size = 25;
     5 typedef long long LL;
     6 LL dp[size][size*3];//dp[x][y]到第x次进攻得到y分有几种方法
     7 int score_times;
     8 
     9 void solve( )
    10 {
    11     for( int i = 1 ; i<=score_times ; i++ )
    12     {
    13         for( int j = 1 ; j<=i*3 ; j++ )
    14         {
    15             if( j>1 )
    16                 dp[i][j] += dp[i-1][j-1];
    17             if( j>2 )
    18                 dp[i][j] += dp[i-1][j-2];
    19             if( j>3 )
    20                 dp[i][j] += dp[i-1][j-3];
    21         }
    22     }
    23 }
    24 
    25 int main()
    26 {
    27     cin.sync_with_stdio(false);
    28     LL ans;
    29     int min_score , a , b , t;
    30     while( cin >> a >> b >> t )
    31     {
    32         memset( dp , 0 , sizeof(dp) );
    33         dp[1][1] = dp[1][2] = dp[1][3] = 1;
    34         ans = 0;
    35         min_score = a - b - 1 - t/30;
    36         score_times = (t/15+1)/2;
    37         if( score_times == 0 )
    38         {
    39             if( min_score>=0 )
    40             {
    41                 cout << 1 << endl;
    42             }
    43             else
    44             {
    45                 cout << 0 << endl;
    46             }
    47         }
    48         else
    49         {
    50             min_score = min_score <=0 ? -min_score : 0;
    51             solve( );
    52             for( int i = min_score ; i<=score_times*3 ; i++ )
    53             {
    54                 ans += dp[score_times][i];
    55             }
    56             cout << ans << endl;
    57         }
    58     }
    59     return 0;
    60 }
    61 a
    View Code

    today:

      这个世界上的每个角落无时无刻不上演着离别与告别

    just follow your heart
  • 相关阅读:
    文件系统类型
    Linux VFS分析(二)
    VFS(Virtual File System)
    shell语言
    linux VFS 之一 :虚拟文件系统的面向对象设计思想
    分层利器 facade
    微内核与面向组件
    从操作系统内核看设计模式--linux内核的facade模式
    软件架构模式
    联系的度量
  • 原文地址:https://www.cnblogs.com/radical/p/4010500.html
Copyright © 2011-2022 走看看