本文主要是介绍题目:建造房屋 (蓝桥OJ3362),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:
代码:
#include<bits/stdc++.h>
using namespace std;
int n, m, k, ans, mod = 1e9 + 7;
long long dp[55][2605];
/*dp[i][j]:第i个街道上建j个房屋的总方案数枚举所有的转移,累加到dp[n][k]即总方案数
*/
int main()
{cin >> n >> m >> k;for(int i = 0; i <= k; i++)dp[0][i] = 1; // 初始化,第一个街道上建造房屋的方案for(int i = 0; i < n; i++) // 站在建好的前第i条街道上,去规划第i+1条街道怎么操作for(int j = 1; j <= m; j++)for(int l = i; l <= k; l++)(dp[i+1][j+l] += dp[i][l]) %= mod; cout << dp[n][k] << '\n'; return 0;
}
知识点:动态规划
这篇关于题目:建造房屋 (蓝桥OJ3362)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!