后三个超时了,用的c语言,怎么改啊
查看原帖
后三个超时了,用的c语言,怎么改啊
866969
telankesi楼主2022/11/16 08:47
#include <stdio.h>
int max;//最大容纳量
int n;
int a[100];
int x;//最优解
void fun(int v,int k);
int main() {
	
	scanf("%d", &max);
	
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i]);

	}
	fun(0,0);
	printf("%d", max-x);
	return 0;

}
void fun(int v,int k) {



	for (int i = k; i < n; i++) {
			for (int j = 0; j <= 1; j++) {
				if (j == 0) {
					if(v+a[i]<max)
					fun(v + a[i],k+1);
					else {
						if (x < v)
							x = v ;
						
					}
				}
				else if (j == 1)fun(v,k+1);
			}
		}
	
}
2022/11/16 08:47
加载中...