为什么样例过了但交上去是0分?求大佬帮助
  • 板块P1194 买礼物
  • 楼主zhang46
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/18 23:57
  • 上次更新2025/1/19 10:30:49
查看原帖
为什么样例过了但交上去是0分?求大佬帮助
1447441
zhang46楼主2025/1/18 23:57
#include<bits/stdc++.h>
using namespace std;
struct line{
	int to,pre,w;
};
line b[1000];
int head[1000];
int B,A,K,k,ans,sa,h=1;
bool vis[1000];
void adg(int x,int y,int w){
	k++;
	b[k].pre=head[x];
	b[k].to=y;
	head[x]=k;
	b[k].w=w;
}
void dfs(int x){
	if(h==B){
		if(!ans)ans=sa;
		else if(sa<ans)ans=sa;
	}
	for(int i=head[x];i;i=b[i].pre){
		
		int y=b[i].to;
		if(vis[y]) continue;
		vis[y]=1;
		int u=b[i].w;	
		if(u>A)continue;
		sa+=u;
		h++; 
		dfs(y);
		vis[y]=0;
		sa-=u;
		h--;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>A>>B;
	for(int i=1;i<=B;i++){
		for(int j=1;j<=B;j++){
			cin>>K;
			if(K){
				adg(i,j,K);
				adg(j,i,K);
			}
		}
	}
	for(int i=1;i<=B;i++){
		dfs(i);
	}
	ans+=A;
	cout<<ans;
	return 0;
}
2025/1/18 23:57
加载中...