为啥输出总是零
  • 板块学术版
  • 楼主pencil
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/8/19 18:10
  • 上次更新2023/11/6 19:55:08
查看原帖
为啥输出总是零
137723
pencil楼主2020/8/19 18:10
#include<bits/stdc++.h>
using namespace std;
bool cmd(int a,int b){
	return a>b;
}
int zui=-1;int a[60],b[1034],i,n,m,i2,ji[1034];
//void dfs(int start,int ge,int zuida){
//	int a1=a[ge];
//	for(int i=start;i<=m;i++){
//		a1-=a[i];
//		if(a1<=0){
//			if(ge==n)
//			zui=max(zui,zuida);
//			else
//			dfs(i-(1-a1/a[i]),ge+1,zuida);
//		}
//		zuida++;
//	}
//}
int dfs(int start,int sheng){
	if(start>m) return 0;
	if(b[start]>sheng) return 0;
	int zuida=0;
	for(int i=start+1;i<=m;i++){
		if(!ji[i]){
		ji[i]=1;
		zuida+=dfs(i,sheng-a[i]);
		ji[i]=0;
		}
	}
	return zuida; 
}
int main(){
	int big;
	cin>>n;
	for(i=1,big=-1;i<=n;i++) cin>>a[i],big=max(big,a[i]);
	cin>>m;
	for(i=1;i<=m;i++) cin>>b[i];
//	sort(a+1,a+n+1,cmd);
	sort(b+1,b+m+1,cmd);
	for(i=m;i!=0;i--) if(b[i]<=big) break;
	m=i;
	for(i=1;i<=n;i++){
		
		zui=max(zui,dfs(1,a[i]));
	}
	cout<<zui;
	return 0;
}
2020/8/19 18:10
加载中...