求助
查看原帖
求助
653903
jiaxinchen楼主2023/3/13 21:58

看看我的代码

#include<bits/stdc++.h>
using namespace std;
int s[15];
int b[15];
bool book[15];
int ans=0x3f3f3f3f,llla=1,lllb=0;
void dfs(int n,int k,int ku,int suan){
	if(abs(ku-suan)<ans)ans=abs(ku-suan);
    if(n!=k){
		for(int i=1;i<=n;i++){
			if(book[i]==false){
				book[i]=true;
				dfs(n,k+1,ku+b[i],suan=s[i]);
				book[i]=false;
			}
		}
	}
}
int main(){
	memset(s,0,sizeof(s));
	memset(b,0,sizeof(b));
	memset(book,0,sizeof(book));
	int n,sames=0,sameb=0,ss=1,sb=1;
	cin>>n;
	cin>>s[1]>>b[1];
	sames=s[1];
	sameb=b[1];
	for(int i=2;i<=n;i++){
		cin>>s[i]>>b[i];
		if(s[i]==sames)ss++;
		if(b[i]==sameb)sb++;
	}
	if(n==1){
		cout<<abs(s[1]-b[1])<<endl;
		return 0;
	}
	if((ss==sb&&ss==n&&sb==n)){
		for(int i=1;i<=n;i++){
			llla*=s[i];
			lllb+=b[i];
			ans=min(ans,abs(llla-lllb));
		}
		cout<<ans;
		return 0;
	}
	dfs(n,1,0,1);
	cout<<ans;
	return 0;
}

结果……WA了3个点(https://www.luogu.com.cn/record/104639939) 求助求助

2023/3/13 21:58
加载中...