53-59行死循环了
查看原帖
53-59行死循环了
1258467
hao12345ia楼主2024/7/17 17:15
#include<bits/stdc++.h>
using namespace std;
int n,nn;
int bian[10001];
int t=1;
int a1,b;
int xu[6];
int f[6][6][6][6][6];
struct node{
	int n;
	int s[6];
	int pay;
}a[1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].n;
		for(int j=1;j<=a[i].n;j++){
			cin>>a1>>b;
			if(bian[a1]==0){
				bian[a1]=t;
				t++;
			}
			a[i].s[bian[a1]]=b;	
		}
		cin>>a[i].pay;
	}
	cin>>nn;
	for(int i=1;i<=nn;i++){
		cin>>a1>>b;
			if(bian[a1]==0){
				bian[a1]=t;
				t++;
			}
		xu[bian[a1]]=b;
		a[n+i].n=1;
		a[n+i].s[bian[a1]]=1;	
		cin>>a[n+i].pay;
	}	
	for(int i=0;i<=5;i++){
		for(int j=0;j<=5;j++){
			for(int k=0;k<=5;k++){
				for(int l=0;l<=5;l++){
					for(int v=0;v<=5;v++){
						f[i][j][k][l][v]=233333;
					}
				}
			}
		}
	}
	n+=nn;
	f[0][0][0][0][0]=0;
	for(int i=1;i<=n;i++)
		for(int j=a[i].s[1];j<=xu[1];j++)
			for(int k=a[i].s[2];k=xu[2];k++)
				for(int l=a[i].s[3];l<=xu[3];l++)
					for(int v=a[i].s[4];v<=xu[4];v++)
						for(int q=a[i].s[5];q<=xu[5];q++)
							f[j][k][l][v][q]=min(f[j][k][l][v][q],f[j-a[i].s[1]][k-a[i].s[2]][l-a[i].s[3]][v-a[i].s[4]][q-a[i].s[5]]+a[i].pay);
	cout<<f[xu[1]][xu[2]][xu[3]][xu[4]][xu[5]];
}
2024/7/17 17:15
加载中...