您的位置:首页 > 其它

UVA 11137 Ingenuous Cubrency

2013-01-04 14:59 323 查看
大意不再赘述。

思路:简单的背包问题。

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
using namespace std;

typedef long long int LL;

int V[30];
LL f[100010];

void init()
{
	memset(f, 0, sizeof(f));
	f[0] = 1;
}

int n, C;

LL dp()
{
	for(int i = 1; i <= 21; i++)
	{
		for(int v = V[i]; v <= C; v++)
		{
			f[v] += f[v-V[i]];
		}
	}
	return f[C];
}

void solve()
{
	init();
	LL ans = dp();
	printf("%lld\n", ans);
}

int main()
{
	for(int i = 1; i <= 25; i++) V[i] = i*i*i;
	while(~scanf("%d", &C))
	{
		solve();
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: