当前位置: 代码迷 >> 综合 >> POJ 1874 Trade on Verweggistan G++ dfs 巧妙 没掌握
  详细解决方案

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

热度:79   发布时间:2024-02-25 01:25:20.0

#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;
}