链接: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想知道自己在不找零的情况下能否任意购买一件商店中的商品,你能帮帮他么?

输入描述:

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

输出描述:

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

示例1

输入

复制

  1. 4 10
  2. 1 2 3 4

输出

复制

  1. YES

说明

  1. w可以用面值为1的纸币在不找零的情况下购买价值为1的商品
  2. w可以用面值为2的纸币在不找零的情况下购买价值为2的商品
  3. w可以用面值为12的纸币在不找零的情况下购买价值为3的商品
  4. w可以用面值为4的纸币在不找零的情况下购买价值为4的商品
  5. w可以用面值为14的纸币在不找零的情况下购买价值为5的商品
  6. w可以用面值为24的纸币在不找零的情况下购买价值为6的商品
  7. w可以用面值为124的纸币在不找零的情况下购买价值为7的商品
  8. w可以用面值为134的纸币在不找零的情况下购买价值为8的商品
  9. w可以用面值为234的纸币在不找零的情况下购买价值为9的商品
  10. w可以用面值为1234的纸币在不找零的情况下购买价值为10的商品

示例2

输入

复制

  1. 4 10
  2. 5 5 2 1

输出

复制

  1. NO

说明

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

备注:

  1. 纸币的面值可能会相同,每张纸币仅有一张,可以使用或者不使用。
  2.  
  3. 当且仅当你能用手里的纸币凑出价值恰好为1,2,3,4,5,....m的物品的购买方案时,我们认为可以任意购买物品。
  4.  
  5. 你可以认为这m个查询都是独立的。也就是说同一张纸币可以在购买不同价值的物品方案中出现

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

代码:

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<algorithm>
  5. using namespace std;
  6. int main()
  7. {
  8. long long int sum=0;
  9. int n,m;
  10. int a[1005];
  11. cin>>n>>m;
  12. for(int t=1;t<=n;t++)
  13. {
  14. scanf("%d",&a[t]);
  15. }
  16. sort(a+1,a+n+1);
  17. for(int t=1;t<=n;t++)
  18. {
  19. if(sum+1<a[t])
  20. break;
  21. sum+=a[t];
  22. }
  23. if(sum>=m)
  24. {
  25. printf("YES\n");
  26. }
  27. else
  28. {
  29. printf("NO\n");
  30. }
  31. return 0;
  32. }

牛客网练习赛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. iOS开发 - 如何跳到系统设置里的各种设置界面

    在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等.在iOS6之后,第三方应用需要跳转系统设置界面,需要在URL type中添加一个pre ...

  2. 按钮滚动到指定位置(JS)

    function intval(v) { v = parseInt(v); return isNaN(v) ? 0 : v; } function getPos(e) { var l = 0; var ...

  3. mysql 优化 实现命中率100%

    配置你的mysql配置文件:主要是配置[mysqld]后面的内容. 1,优化远程连接速度. 在[mysqld]下面添加skip-name-resolve skip-name-resolve 选项就能禁 ...

  4. Java如何创建内部类对象

    public static void main(String[] args) { Person p = new Test().new Person(); } class Person { String ...

  5. 作业2nd

    1. 国内: 雷军作为中国互联网代表人物及环球年度电子商务创新首领人物,曾获中国经济年度人物及十大财智首领人物.中国互联网年度人物等多项国表里荣誉,并当选<福布斯>(亚洲版)2014年度贸 ...

  6. 【Lintcode】135.Combination Sum

    题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C  ...

  7. 【LeetCode】016 3Sum Closest

    题目: Given an array S of n integers, find three integers in S such that the sum is closest to a given ...

  8. 媒体格式分析之flv -- 基于FFMPEG

    本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写.今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv. FLV 是FLASH V ...

  9. RT-Thread RTOS

    RT-ThreadRTOS是一款来自中国的开源实时操作系统,由RT-Thread工作室的专业开发人员开发.维护. 起初RT-Thread是一个实时的内核(全抢占优先级调度,调度器时间复杂度O(1)), ...

  10. CentOS下编写shell脚本来监控MySQL主从复制的教程

    这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步 ...