链接:https://ac.nowcoder.com/acm/contest/297/D

来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 262144K,其他语言524288K

64bit IO Format: %lld

题目描述

旅行到K国的小w发现K国有着很多物美价廉的商品,他想要买一些商品。

结果一掏钱包,包里只剩下n张K国的纸币了,说起来也奇怪,K国纸币并不像其他国家一样都是1元,5元,10元…而是各种奇怪的面值,所以找零就不是很方便。

已知商店里的商品价格都是小于等于m的正整数,如果有可能存在某个商品的价格为x<=m并且x无法在不找零的情况下支付,小w就不能任意购买一件商店中的商品,小w想知道自己在不找零的情况下能否任意购买一件商店中的商品,你能帮帮他么?

输入描述:

第一行是两个正整数n,m(n<=1000,m<=2^31-1)
第二行共n个正整数ai(1<=ai<=2^31-1),代表小w钱包中K国纸币的面值。

输出描述:

如果能任意购买商店中的物品,请输出"YES"(不含引号)。
如不能任意购买商店中的物品,请输出"NO"(不含引号)。

示例1

输入

复制

4 10
1 2 3 4

输出

复制

YES

说明

小w可以用面值为1的纸币在不找零的情况下购买价值为1的商品
小w可以用面值为2的纸币在不找零的情况下购买价值为2的商品
小w可以用面值为1、2的纸币在不找零的情况下购买价值为3的商品
小w可以用面值为4的纸币在不找零的情况下购买价值为4的商品
小w可以用面值为1、4的纸币在不找零的情况下购买价值为5的商品
小w可以用面值为2、4的纸币在不找零的情况下购买价值为6的商品
小w可以用面值为1、2、4的纸币在不找零的情况下购买价值为7的商品
小w可以用面值为1、3、4的纸币在不找零的情况下购买价值为8的商品
小w可以用面值为2、3、4的纸币在不找零的情况下购买价值为9的商品
小w可以用面值为1、2、3、4的纸币在不找零的情况下购买价值为10的商品

示例2

输入

复制

4 10
5 5 2 1

输出

复制

NO

说明

小w可以用面值为1的纸币在不找零的情况下购买价值为1的商品
小w可以用面值为2的纸币在不找零的情况下购买价值为2的商品
小w可以用面值为1、2的纸币在不找零的情况下购买价值为3的商品
小w无法在不找零的情况下用手中的纸币构造出价值为4的商品的购买方案,所以认为小w无法任意购买商店中的商品

备注:

纸币的面值可能会相同,每张纸币仅有一张,可以使用或者不使用。

当且仅当你能用手里的纸币凑出价值恰好为1,2,3,4,5,....m的物品的购买方案时,我们认为可以任意购买物品。

你可以认为这m个查询都是独立的。也就是说同一张纸币可以在购买不同价值的物品方案中出现

题解:默认一开始你能表示1-n,然后每次多一个a[i],新的区间就可以表示为1+a[i]--n+a[i],然后判断是否可以合并,可以合并表示1-n+a[i]的数都能表示,不行就输出NO

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; int main()
{
long long int sum=0;
int n,m;
int a[1005];
cin>>n>>m;
for(int t=1;t<=n;t++)
{
scanf("%d",&a[t]);
}
sort(a+1,a+n+1);
for(int t=1;t<=n;t++)
{
if(sum+1<a[t])
break;
sum+=a[t];
}
if(sum>=m)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}

牛客网练习赛34-D-little w and Exchange(思维题)的更多相关文章

  1. 牛客网练习赛23 F 托米的游戏

    链接:https://www.nowcoder.com/acm/contest/156/F 来源:牛客网 题目描述 题目背景编不下去了 托米有一棵有根树 T, 树根为1,每轮他会在剩下的子树中等概率一 ...

  2. 牛客网练习赛28A

    题目链接:https://www.nowcoder.com/acm/contest/200/A 链接:https://www.nowcoder.com/acm/contest/200/A来源:牛客网 ...

  3. 牛客网练习赛18 A 【数论/整数划分得到乘积最大/快速乘】

    链接:https://www.nowcoder.com/acm/contest/110/A 来源:牛客网 题目描述 这题要你回答T个询问,给你一个正整数S,若有若干个正整数的和为S,则这若干的数的乘积 ...

  4. 牛客网练习赛26B(简单的dp)

    题目链接:https://www.nowcoder.com/acm/contest/180/B 链接:https://www.nowcoder.com/acm/contest/180/B来源:牛客网 ...

  5. 牛客网练习赛25 C 再编号

    链接:https://www.nowcoder.com/acm/contest/158/C来源:牛客网 定义对 a 的再编号为 a' ,满足 . 现在有 m 次询问,每次给定 x,t ,表示询问经过 ...

  6. 牛客网第9场多校E(思维求期望)

    链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 题目描述 Niuniu likes to play OSU! We simplify the ...

  7. 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅

    链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...

  8. 牛客网 2018年东北农业大学春季校赛 I题 wyh的物品

    链接:https://www.nowcoder.com/acm/contest/93/I 来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言5242 ...

  9. 牛客练习赛34 D little w and Exchange(归纳)

    题意: 给n个数,和m 问这组数是否可以构成[1, m]中的每一个数 思路: 先将a数组排序. 先算算构成前几个数需要什么,至少需要a[1]=1 需要a[2] = 1,2 在a[2] = 1的情况下a ...

随机推荐

  1. Listen81

    Nut-Cracking Chimps Demonstrate Cultural Differences One family generally dines on Chinese takeout w ...

  2. 跨线程send message

    今天同事问了一个问题,说在线程中send message 和直接调用是不是一样,他觉得是一样的,但是线程跟踪却发现处理过程是在接收消息队列完成.回家看到博客园上的一番争论才有些明白,这里贴出来,共勉 ...

  3. codeforces 569A A. Music(水题)

    题目链接: A. Music time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  4. POJ1195Mobile phones (从二维树状数组到cdq分治)

    Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows ...

  5. java面试题05

    1.写一个冒泡排序的算法 升序排列: public static void main(String[] args) { int score[] = { 67, 20, 75, 87, 89, 90, ...

  6. MySQL_产品昨日库存与历史入库历史出库成本_20161124

    产品昨日库存与历史入库历史出库成本 SELECT d.ID,a.*,e.昨日订单额 ,b.昨天入库额,b.历史2天,b.历史3天,b.历史4天,b.历史5天,b.历史6天,b.历史7天,b.历史8天, ...

  7. MySQL交叉表处理_20160923

    交叉表处理,在二维表中例如下面表 想把年月字段放到列字段,在sql中可以使用sum(if(条件,求和字段,null)) 函数来进行行列的转置 1.首先是上篇的年月字段在一列 SELECT city A ...

  8. ACM学习历程—BestCoder 2015百度之星资格赛1001 大搬家(递推 && 组合数学)

    Problem Description 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置i 上的人要搬到位置j 上.现在B厂有N 个人,一对一到N 个位置上.搬家之后 ...

  9. shuts down an ExecutorService

    shuts down an ExecutorService in two phases, first by calling shutdown to reject incoming tasks, and ...

  10. js取得数组重复元素

    function duplicates(arr) { var result=[]; arr.sort();//进行排序,重复的都相邻了 ;i<arr.length;i++){ ]&&am ...