2 条题解

  • -1
    @ 2024-7-24 15:52:31
    using namespace std;
    const int MAXN=15;
    int c[MAXN][MAXN];
    bool used[MAXN];
    int ans=1e9;
    int sum=0;
    int n;
    void dfs(int dep)
    {
    	//出口边界 
        if(dep>n)
    	{
    		ans=min(ans,sum);
    	}	
    	//枚举
    	for(int j=1;j<=n;j++)
    	{
    		if(!used[j])
    		{
    			sum+=c[dep][j];
    			used[j]=true;
    			
    			dfs(dep+1);
    		}		
    	}
    }
    
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=n;j++)
    		{
    			cin>>c[i][j];
    		}
    	}
    	dfs(0);
    	cout<<ans;
    }
    • -1
      @ 2024-7-24 9:07:01
      int a[25];int hp,n;
      int ar,ac;
      void dfs(int hp,int ans,int dep){
      	if(dep==n){
      		return ;		
      	}
      	for(int i=0;hp-i*a[dep]>0;i++){
      		dfs(hp-i*a[dep],ans+i,dep+1);
      	}
      }
      int main(){
      	 
      	 cin>>hp>>n;
      	 for(int i=1;i<n;i++){
      	 	cin>>a[i];
      	 }
      	 dfs(hp,0,1);
      	cout<<ar<<"\n"<<ac<<'\n';
      }
      
      • 1

      信息

      ID
      377
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      (无)
      递交数
      240
      已通过
      84
      上传者