【 OJ 】 HDOJ1028 18年11月15日02:00 [ 27 ]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QingCoffe/article/details/84103143

说实话第一反应是dp,但是看了网上的所有人的解法几乎一致为母函数,好吧从没接触过这个东西

看了母函数的解法....ummm鬼才吧.......说不清道不明,客官自己悟吧

本题已AC

# include<iostream>
using namespace std;
int a[130];//暂定大小
int b[130];
int main(void) {
	int N;
	int i, j, k;
	while (cin >> N) {
		for (i = 0; i <= N; i++) {
			a[i] = 1;
			b[i] = 0;
		}//初始化第一个表达式的每一个系数
		for (i = 2; i <= N; ++i) {//第 i 个表达式
			for (j = 0; j <= N; j++) {// 运算后的每一项
				for (k = 0; k <= N; k += i) {// 第 i  的每一项
					if (j + k > N)
						break;
					b[j + k] = b[j + k] + a[j];//a[j]*1 应该是 j 和系数和 k 的系数相乘
				}
			}
			for (k= 0; k <= N; k++) {
				a[k] = b[k];
				b[k] = 0;
			}
		}
		cout << a[N] << endl;
	}
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/QingCoffe/article/details/84103143