题目描述

Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉。所以FJ将她置于一个及其严格的节食计划之中。她每天不能吃多过H (5 <= H <= 45,000)公斤的干草。 Bessie只能吃一整捆干草;当她开始吃一捆干草的之后就再也停不下来了。她有一个完整的N (1 <= N <= 500)捆可以给她当作晚餐的干草的清单。她自然想要尽量吃到更多的干草。很自然地,每捆干草只能被吃一次(即使在列表中相同的重量可能出现2次,但是这表示的是两捆干草,其中每捆干草最多只能被吃掉一次)。 给定一个列表表示每捆干草的重量S_i (1 <= S_i <= H), 求Bessie不超过节食的限制的前提下可以吃掉多少干草(注意一旦她开始吃一捆干草就会把那一捆干草全部吃完)。

输入输出格式

输入格式:

* 第一行: 两个由空格隔开的整数: H 和 N * 第2到第N+1行: 第i+1行是一个单独的整数,表示第i捆干草的重量S_i。

输出格式:

* 第一行: 一个单独的整数表示Bessie在限制范围内最多可以吃多少公斤的干草。

输入输出样例

输入样例#1:

56 4
15
19
20
21
输出样例#1:

56
输入样例#2:

2 1
1
输出样例#2:

1

听说是01背包问题,但并不是用背包写的。
思路很简单,从1到n扫一遍,把所有可能出现的情况在一个bool数组w[]中标记出来.之后只要找到范围内最大的值即可。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; bool w[];
int main()
{
int sum, k;
while (cin >> sum >> k)
{
memset(w, , sizeof(w));
w[]= ;
int a;
for (int i = ; i < k; i ++)
{
cin >> a;
// for (int j = 0; j <= sum; j ++) //从0 开始从小到大遍历的话第二组样例会出错
for (int j = sum; j >= ; j --) //原因是F[i+ a]= 1后,F[j+ a] (j= i+ a)便会被错误刷新,这时相当于同一捆草被吃了两次
{
if (w[j]&& j+ a<= sum) w[j+ a]= ;
}
}
int maxx= ;
for (int i = ; i <= sum; i ++)
{
if (w[i]) maxx= i;
}
cout << maxx << endl;
}
return ;
}

最新文章

  1. CPrimerPlus第11章第10题
  2. java基础总结——基础语法2(语句)
  3. maven仓库没有的包依赖
  4. ionic实现手机检测app是否安装,未安装则下载安装包,已安装则打开app(未实现iOS平台)
  5. mysql之消息队列
  6. leetcode@ [146] LRU Cache (TreeMap)
  7. UVa 11178 (简单练习) Morley&#39;s Theorem
  8. windows server 2012安装.net framework3.5失败解决方法
  9. 程序员要拥抱变化,聊聊Android即将支持的Java 8
  10. Delphi 10.2.3
  11. [LeetCode] Rank Scores -- 数据库知识(mysql)
  12. Vue自用axios封装
  13. 删除php数组中的元素
  14. C++多线程同步之Mutex(互斥量)
  15. 第三章 形容词(Les adjectifs)
  16. python使用web.py开发httpserver,解决post请求跨域问题
  17. Codeforces Round #297 (Div. 2)A. Vitaliy and Pie 水题
  18. Golang之fmt格式“占位符”
  19. C#基础笔记(第二十一天)
  20. [C++] Type Conversion(类型转换)

热门文章

  1. Spring的AOP特性
  2. IOS - UIView停止交互
  3. Lua 跟 C++ 的交互
  4. sql_server_action
  5. [1525] Cow Xor
  6. (多项式)因式分解定理(Factor theorem)与多项式剩余定理(Polynomial remainder theorem)(多项式长除法)
  7. [Swift通天遁地]四、网络和线程-(10)处理图片:压缩、缩放、圆角、CoreImage滤镜、缓存
  8. 3最短路的几种解法 ------例题&lt; 最短路 &gt;
  9. BZOJ 3456 NTT图的计数 容斥
  10. 题解报告:hdu 1527 取石子游戏(威佐夫博弈)