题解 | #吃糖果# 动态规划

吃糖果

https://www.nowcoder.com/practice/72015680c32b449899e81f1470836097

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;

const int N = 30;
int dp[N][N], n; // dp[i][j]表示i个糖果吃j天的吃法数量

int main(){
	while( cin >> n ){
		dp[1][1] = 1;
		dp[2][1] = 1;
		dp[2][2] = 1;
		for(int i=3; i<n+1; i++)
			for(int j=(i+1)/2; j<=i; j++)
				dp[i][j] = dp[i-1][j-1] + dp[i-2][j-1];
			
		int res = 0;
		for(int j=0; j<=n; j++) res += dp[n][j];
		cout << res << endl;
	}
	
	return 0;
}

全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务