满减优惠[Offer收割]编程练习赛4


题目1 : 满减优惠
时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

最近天气炎热,小Ho天天宅在家里叫外卖。他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元。并且如果消费总计满X元,还能享受优惠。小Ho是一个不薅羊毛不舒服斯基的人,他希望选择若干道不同的菜品,使得总价在不低于X元的同时尽量低。

你能算出这一餐小Ho最少消费多少元吗?
输入

第一行包含两个整数N和X,(1 <= N <= 20, 1 <= X <= 100)

第二行包含N个整数A1, A2, ..., AN。(1 <= Ai <= 100)
输出

输出最少的消费。如果小Ho把N道菜都买了还不能达到X元的优惠标准,输出-1。
样例输入

    10 50
    9 9 9 9 9 9 9 9 9 8

样例输出

    53
 0元的时候肯定不许点菜就可满足。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
const int maxn = 200010;
typedef long long ll;
int dp[10500],s[500],sum;
int main()
{
    //freopen("data.in","r",stdin);
    int n,x;
    scanf("%d%d",&n,&x);
    for(int i=1;i<=n;i++){
        scanf("%d",s+i);
        sum+=s[i];
    }
    if(sum<x){printf("-1\n");}
    else{
        dp[0]=1;
        for(int i=1;i<=n;i++){
            for(int j=sum;j>=s[i];j--){
                dp[j]|=dp[j-s[i]];
            }
        }
        for(int i=x;i<=sum;i++)
        if(dp[i]){
            printf("%d\n",i);
            break;
        }
    }
}

 

转载于:https://www.cnblogs.com/acmtime/p/5746671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《后端 offer 收割机养成指南》是一本有关后端技术与求职的指南,主要面向想要成为后端工程师的人群。这份PDF提供了一些实用的技术知识和求职建议,有助于读者了解后端技术的要点和掌握核心技能。 首先,这本指南详细介绍了后端工程师的职责和岗位要求。后端工程师主要负责构建和维护服务器端的数据处理逻辑和业务逻辑。他们需要具备扎实的编程基础,熟悉常用的后端开发语言和框架,如Java、Python、Node.js等,并能够熟练使用数据库。 指南中还介绍了一些后端工程师常用的技术栈和工具,如RESTful API、微服务架构、消息队列等。这些技术和工具是现代后端开发中不可或缺的组成部分,掌握它们将有助于提升后端工程师的工作效率和开发质量。 此外,这本指南还分享了一些求职的经验和建议。它提供了寻找后端工程师职位的途径和方法,并给出了一些面试准备和面试技巧。通过学习这些经验和建议,读者可以更好地应对后端工程师的面试挑战,并提升自己的求职竞争力。 总而言之,《后端 offer 收割机养成指南》是一本对于想要成为后端工程师的人们非常有价值的指南。它不仅提供了掌握后端技术的核心知识和技能,还分享了求职方面的经验和建议。希望这本指南对读者在后端领域的学习和求职之路上有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值