RQNOJ 39 饮食问题 解题报告
就是暴力搜索,用f[i]为0为1代表是否能够构成着一种,如果能就是1不然就是0,然后代码就出来了:
#include <stdio.h> #include <stdlib.h> char f[35001]; int main(int argc, char **argv) { int i, j, max = 0; int m, n, a; scanf("%d%d", &m, &n); f[0] = 1; for(i = 1; i <= n; i++){ scanf("%d", &a); for(j = max; j >= 0; j--){ if(!f[j]){ continue; } if(j + a <= m){ if(j + a > max){ max = j + a; } f[j + a] = 1; } } } printf("%d\n", max); return 0; }