2 条题解

  • 5
    @ 2023-7-19 15:41:11

    转载自@芝士雪豹的题解


    格式化很累的!点个赞吧!求求了~

    #include<bits/stdc++.h>
    using namespace std;
    int v,g;
    int vt[30];
    int a[30][30];
    int b[30];
    int k[30];
    int lit=99;
    bool pd;
    void dfs(int dep,int s) {
    	pd=true;
    	for(int i=1;i<=v;i++) {
    		int ans=0;
    		for(int j=1;j<=s;j++)
    			ans+=a[b[j]][i];
    		if(ans<vt[i]) {
    			pd=false;
    			break;
    		}
    
    	}
    	if(pd) {
    		if(s<lit) {
    			lit=s;
    			for(int i=1;i<=s;i++)
    				k[i]=b[i];
    		}
    	}
    	if(dep>g) return;
    	b[s+1]=dep;
    	dfs(dep+1,s+1);
    	dfs(dep+1,s);
    }
    int main() {
    	cin>>v;
    	for(int i=1;i<=v;i++)
    		cin>>vt[i];
    	cin>>g;
    	for(int i=1;i<=g;i++) {
    		for(int j=1;j<=v;j++) {
    			cin>>a[i][j];
    		}
    	}
    	dfs(1,0);
    	cout<<lit<<' ';
    	for(int i=1;i<=lit;i++)
    		cout<<k[i]<<' ';
    	return 0;
    }
    
    • 4
      @ 2023-7-19 15:30:54

      上代码

      #include<bits/stdc++.h>

      using namespace std;

      int v,g;

      int vt[30];

      int a[30][30];

      int b[30];

      int k[30];

      int lit=99;

      bool pd;

      void dfs(int dep,int s)

      {

      pd=true;

      for(int i=1;i<=v;i++)

      {

      int ans=0;

      for(int j=1;j<=s;j++)

      ans+=a[b[j]][i];

      if(ans<vt[i])

      {

      pd=false;

      break; }

      }

      if(pd)

      {

      if(s<lit)

      {

      lit=s;

      for(int i=1;i<=s;i++)

      k[i]=b[i];

      }

      }

      if(dep>g) return;

      b[s+1]=dep;

      dfs(dep+1,s+1);

      dfs(dep+1,s);

      }

      int main()

      {

      cin>>v;

      for(int i=1;i<=v;i++)

      cin>>vt[i];

      cin>>g;

      for(int i=1;i<=g;i++)

      {

      for(int j=1;j<=v;j++)

      {

      cin>>a[i][j];

      }

      }

      dfs(1,0);

      cout<<lit<<' ';

      for(int i=1;i<=lit;i++)

      cout<<k[i]<<' ';

      return 0;

      }

      给个赞吧

      • 1

      [USACO2.1] 健康的荷斯坦奶牛 Healthy Holsteins

      信息

      ID
      459
      时间
      1000ms
      内存
      125MiB
      难度
      2
      标签
      递交数
      98
      已通过
      54
      上传者