POJ 1874 Trade on Verweggistan G++ dfs巧妙没掌握

    科技2022-07-11  99

    #include <iostream> #include <cstdio> #include <set> #include <cstring> using namespace std; //英语 看博友分析 抄博友程序 dfs 巧妙 没掌握 int da[104][104]; int cnt[104]; int res[104][104];//抄博友程序 int n; set<int> se; void dfs(int x,int zhi) { if(x==n) { se.insert(zhi); return;//抄博友程序 } for(int i=0;i<cnt[x];i++)//没掌握 { dfs(x+1,zhi+res[x][i]); } } int main() { int tag=0; while(1) { tag++; se.clear(); memset(cnt,0,sizeof(cnt));//抄博友程序 cin>>n; if(n==0) { break; } int jg=0; for(int i=0;i<n;i++) { cin>>da[i][0]; int sum=0; int mx=0; cnt[i] = 1, res[i][0] = 0;//抄博友程序 没掌握 for(int j=1;j<=da[i][0];j++) { cin>>da[i][j]; sum=sum+10-da[i][j]; if(sum>mx)//抄博友程序 { mx=sum; cnt[i]=1; res[i][0]=j;//抄博友程序 巧妙 没掌握 }else if(sum==mx) { res[i][cnt[i]++]=j; } } jg=jg+mx; } dfs(0,0); cout<<"Workyards "<<tag<<endl; cout<<"Maximum profit is "<<jg<<"."<<endl; cout<<"Number of pruls to buy: "; int count=0; for(set<int>::iterator it=se.begin();it!=se.end()&& count!=10;count++,it++)//抄博友程序 { cout<<*it<<" "; } cout<<endl<<endl; } return 0; }

     

    Processed: 0.023, SQL: 8