CodeForces - 189A Cut Ribbon (完全背包)

Polycarpus有一条丝带,其长度为N。他希望以满足以下两个条件的方式切割丝带:              
切割后,每个带状件的长度应为A、B或C。              
切割后,带状件的数量应最大。              
帮助Polycarpus找到所需切割后的带状件数量。              

输入             
 第一行包含四个空格分隔的整数n、a、b和c(1≤n、a、b、c≤4000)-原始色带的长度和切割后色带片的可接受长度。数字A、B和C可以重合。              

输出              
打印一个数字-最大可能的丝带条数。保证至少存在一个正确的色带切割。

Examples

  Input
  5 5 3 2
  
  Output
  2
 
 Input
  7 5 5 2
  
 Output
  2


解法一(暴力):

#include<iostream>
using namespace std;

int main()
{
    int n,a,b,c,ans=0;
    cin>>n>>a>>b>>c;
    for(int i=0;a*i<=n;i++)
    {
        for(int j=0;a*i+b*j<=n;j++)
        {
            if((n-a*i-b*j)%c==0)
                ans=max(ans,(n-a*i-b*j)/c+i
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值