[牛客] little w and Exchange

登录—专业IT笔试面试备考平台_牛客网

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

[题目链接](https://ac.nowcoder.com/acm/contest/297/D)

------------
定义有n张纸币,且存在m,使得这n张纸币可以通过任意组合构成不超过m元的任意值,则n符合
用a[n+1]表示第n+1张纸币的值,当a[n+1] <= m+1 时n+1才符合
证明:
反证法:若a[n+1] > m+1,那么无论n+1张纸币如何组合,都无法构成m+1元
注意:计算前要将a[n]进行从小到大排序
------------
代码
 #include <bits/stdc++.h>
using namespace std;
#define mset(var,val) memset(var,val,sizeof(var))
#define lowbit(x) (x&-x)
#define ls(i) i<<1
#define rs(i) i<<1|1
typedef long long int lli;
typedef unsigned long long ull;
const ull base=131;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
const long double eps=1e-20;
const int mod=1e9+7;
const int M=10010;
int main(int argc, char const *argv[])
{
 int n,m,a[M];
 scanf("%d%d",&n,&m);
 for(int i=0;i<n;i++)
  scanf("%d",&a[i]);
 sort(a,a+n);
 int now=0;
 for(int i=0;i<n;i++)
  if(a[i]<=now+1)now+=a[i];
  else break;
 if(now>=m)cout<<YES<<endl;
 else cout<<NO<<endl;
}
```

全部评论

相关推荐

新记话事人:你就和她说去抖音了
点赞 评论 收藏
分享
2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务