zoey
点击国内主页可以让浏览速度加快哦 ~ !

关于HDOJ 1028题(Ignatius and the Princess III(n=哪些正整数相加的可能)) 的理解(C/C++)

2019-08-09 hdoj 排列 背包问题 分治 动态规划
Word count: 356 | Reading time: 2min

题目描述

Ignatius and the Princess III
  Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
  Total Submission(s): 28304 Accepted Submission(s): 19440

Problem Description
  ”Well, it seems the first problem is too easy. I will let you know how foolish you are later.” feng5166 says.
  
  ”The second problem is, given an positive integer N, we define an equation like this:
N=a[1]+a[2]+a[3]+…+a[m];
a[i]>0,1<=m<=N;
  My question is how many different equations you can find for a given N.
  For example, assume N is 4, we can find:
4 = 4;
4 = 3 + 1;
4 = 2 + 2;
4 = 2 + 1 + 1;
4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that “4 = 3 + 1” and “4 = 1 + 3” is the same in this problem. Now, you do it!”

Input
  The input contains several test cases. Each test case contains a positive integer N(1<=N<=120) which is mentioned above. The input is terminated by the end of file.

Output
  For each test case, you have to output a line contains an integer P which indicate the different equations you have found.

Sample Input
  4
  10
  20

Sample Output
  5
  42
  627

Author
  Ignatius.L

原题链接

More info:Question

0/1背包

完全背包

全背包

其他背包问题

Accepted代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 121;
int res[maxn];
int main() {
int n;
while (cin >> n) {
memset(res, 0, sizeof(res));
res[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
res[j] += res[j - i];
}
}
cout << res[n] << endl;
}
return 0;
}

Author: Zoey

Link: https://zoey1038569979.github.io/2019/08/09/hdoj1028/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
关于HDOJ 1048题(The Hardest Problem Ever) 的理解(C/C++)
NextPost >
关于HDOJ 1021题(Fibonacci Again) 的理解(C/C++)
CATALOG
  1. 1. 题目描述
  2. 2. 原题链接
  3. 3. 0/1背包
  4. 4. 完全背包
  5. 5. 全背包
  6. 6. 其他背包问题
  7. 7. Accepted代码