杭电1171 Big Event in HDU 比眉伴天荒 2022-08-05 05:26 114阅读 0赞 # Big Event in HDU # 题目链接:[Big Event in HDU —1171][Big Event in HDU _1171] 这道题目直接用母函数做,大家如果不了解母函数的可以自己百度一下,由于题目比较简单,这里就直接贴代码哈.如果大家有什么问题,可以在下面回复,我会马上为你解答。 **代码如下:** #include <iostream> using namespace std; int extra[100],Res[300000]; struct { int V; int M; }res[50]; int main() { int N,sum; while(scanf_s("%d",&N) &&N>0&&N<=50){ sum=0; for(int i=0;i<N;i++){ cin>>res[i].V>>res[i].M; sum+=res[i].V*res[i].M; } memset(Res,0,sizeof(Res)); for(int i=0;i<N;i++) { memset(extra,0,sizeof(extra)); for(int j=1;j<=res[i].M;j++) extra[j]=res[i].V*j; for(int k=0;k<=res[i].M;k++) for(int x=0;x<=sum;x++) Res[extra[k]+Res[x]]=extra[k]+Res[x]; } int n,i,min=300000,flag; for(i=0;i<=sum;i++){ if(Res[i]==0) continue; n=sum-Res[i]; n=Res[i]-n; if(n>=0 && n<min){ min=n; flag=i; } } cout<<Res[flag]<<" "<<sum-Res[flag]<<endl; } return 0; } “\` [Big Event in HDU _1171]: http://acm.hdu.edu.cn/showproblem.php?pid=1171
还没有评论,来说两句吧...