1RenQing 2012-02-16 22:14:00
点我顶贴
收藏
删除
大家怎么做的
测试结果9: 测试结果错误.错误结果为:6151
正确结果应为:6152
测试结果10: 测试结果错误.错误结果为:345851
正确结果应为:345864
#2 1RenQing@2012-02-16 22:14:00
24980
回复
删除
回复 沙发lzn 的帖子
可以用搜索吗,我用的是搜索
#include<iostream>
using namespace std;
int c[101],r[101],n,m;int ma=0;
void dfs(int sum,int ans){
int i;
bool p=0;
for(i=1;i<=n;i++)
if(sum/c[i]!=0) {p=1;dfs(sum-sum/c[i]*c[i],ans+sum/c[i]*r[i]-sum/c[i]*c[i]);}
if(p==0&&ans+sum>ma) ma=ans+sum;
}
int main()
{
int i;
cin>>n>>m;
for(i=1;i<=n;i++)
{
cin>>c[i]>>r[i];
}
dfs(m,0);
cout<<ma<<endl;
system("pause");
return 0;
}