代码

第一题
0-1背包
#include<bits/stdc++.h>
using namespace std;
int va[10]={2,2,8,1,5,2},w[10]={2,3,1,5,4,3},n,v[20],ans;
//0-1beibao
int main()
{
	scanf("%d",&n);
	for(int i=0;i<6;i++){
		for(int j=n;j>=va[i];j--){
			if(v[j]<v[j-va[i]]+w[i]){
				v[j]=v[j-va[i]]+w[i];
				if(v[j]>ans) ans=v[j];
			}
		}
	}
	printf("%d\n",ans);
	return 0;
}

第二题
深搜
#include<bits/stdc++.h>
using namespace std;
int va[15],w[15];
bool an,v[15];
void dfs(int j){
	if(an) return;
	if(j==9){
		if((w[1]+w[2]+w[3]+w[4])==(w[4]+w[5]+w[6]+w[7])&&(w[1]+w[2]+w[3]+w[4])==(w[1]+w[7]+w[8]+w[9])){
			an=1;
		}
		return ;
	}
	for(int i=1;i<=9;i++){
		if(!v[i]){
			w[j+1]==va[i];
			v[i]=1;
			dfs(j+1);
			v[i]=0;
		}
	}
}
int main(){
	for(int i=1;i<=8;i++){
		scanf("%d,",&w[i]);
	}
	scanf("%d",&w[9]);
	dfs(0);
	if(an) printf("yes\n");
	else printf("no\n");
	return 0;
}


#奇安信笔试##奇安信##笔试题目#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务