完美世界第一题:成功放入背包物品个数

#include <iostream>
#include <vector>
using namespace std;
/************************************************************************/
/* 给定物品个数M,背包个数N,每个背包容量k,依次输入物品的重量
当物品放不下背包时,如果还有背包则放入下一背包,如果没有,直接扔掉。
当下一背包中放入物品后,该背包封口即不可再放物品。
用例输入:
5 5 2
4 3 4 2 1
输出:3																	*/
/************************************************************************/

int succssPutInKnapsack(const int M,const int k,const int N,vector<int>  &weight)
{
	int result = 0;
	vector<int> pack(N,0);
	int j=0;
	for (int i=0;i<M;i++)
	{
		if (weight[i] <= k)
		{
			if (weight[i] + pack[j] <= k)
			{
				pack[j] += weight[i];
				result++;
			}
			else
			{
				if (i == M-1)
					return result;
				if (j+1 != N)
				{
					j++;
					pack[j] += weight[i];
					result++;
				}
			}
		}
	}
	return result;
}

int main()
{
	int M,N,k,weighti;
	vector<int> weight;
	cin>>M>>k>>N;
	for (int i=0;i<M;i++)
	{
		cin>>weighti;
		weight.push_back(weighti);
	}
	cout<<"成功拿走物品数: "<<succssPutInKnapsack(M,k,N,weight)<<endl;
	system("pause");
	return 0;
}

  

时间: 2024-10-13 19:46:28

完美世界第一题:成功放入背包物品个数的相关文章

Java图形界面(GUI)——如何将JTable成功放入面板

在这次课程设计中,大部分内容都设计的很流畅,没有遇到太大的问题,但在面板中加入JTable时确实花费了一部分时间,在此将解决办法总结出来: 定义控件: JPanel panel = new JPanel(); JTable table; JScrollPane jscrollpane = new JScrollPane(); 定义JTable中的两个参数: Object[] columnNames = new Object[]{"客车号","载客量","始

“金山杯2007逆向分析挑战赛”第一阶段第一题分析

题目来自于如下网址: http://www.pediy.com/kssd/ 第13篇 论坛活动 \ 金山杯2007逆向分析挑战赛 \ 第一阶段 \ 第一题 \ 题目 \ [第一阶段 第一题]: 现将此题目概述粘贴如下: CrackMe.exe 是一个简单的注册程序,见附件,请写一个注册机: 要求: 1. 注册机是KeyGen,不是内存注册机或文件Patch 2. 注册机可以使用ASM,VC,BC,VB,Delphi等语言书写,其他谢绝使用. 3. 注册机必须可以运行在Windows系统上. ..

2016/1/12 第一题 输出 i 出现次数 第二题 用for循环和if条件句去除字符串中空格 第三题不用endwith 实现尾端字符查询

1 import java.util.Scanner; 2 3 4 public class Number { 5 6 private static Object i; 7 8 /* 9 *第一题 mingrikejijavabu中字符“i” 出现了几次,并将结果输出*/ 10 public static void main(String[] args) { 11 12 String r ="imingrikejijavabi"; 13 14 15 //第一种 截取 16 int a=

【BZOJ4927】第一题 双指针+DP(容斥?)

[BZOJ4927]第一题 Description 给定n根直的木棍,要从中选出6根木棍,满足:能用这6根木棍拼 出一个正方形.注意木棍不能弯折.问方案数. 正方形:四条边都相等.四个角都是直角的四边形. Input 第一行一个整数n. 第二行包含n个整数ai,代表每根木棍的长度. n ≤ 5000, 1 ≤ ai ≤ 10^7 Output 一行一个整数,代表方案数. Sample Input 8 4 5 1 5 1 9 4 5 Sample Output 3 题解:这...这不是沈阳集训的原

模拟(玩具谜题NOIP 2016 提高组 Day 1 第一题vijos2003)

描述 小南有一套可爱的玩具小人,它们各有不同的职业. 有一天,这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉小南一个谜题:“眼镜藏在我左数第3个玩具小人的右数第1个玩 具小人的左数第2个玩具小人那里.” 小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向:而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向. 小

poj 1743 Musical Theme(男人八题&amp;后缀数组第一题)

Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17298   Accepted: 5939 Description A musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the range 1..88, each representing a key on the

看雪CTF2016CrackMe攻防大赛——第一题

前言 暑假来了,不知道做些什么好,就拿看雪CTF的题来练习练习,学习下大佬们的操作.这是2016年CrackMe攻防赛的第一题,我就被难到了.本来都已经放弃了,但是幸得大佬分享,故跟随大佬的步伐粗略分析了下. 准备 系统:Windows 7 x64 ultimate 工具:IDA pro v7.0(最好用7.0,用6.8会有些问题) 分析 首先运行Crack_Me. 有一个密码输入框,一个OK按钮和一个计数框. 随便输入密码,获得失败提示,提示失败. 载入OD,先运行一下,可是却发现程序直接终止

区赛第一题讲解+基础算法——桶排序与快速排序

截止到上篇随笔,我们已经学完了c++中所有的基础语句,这意味着,noip普及组的第一题你已经可以拿满分了.为了纪念这个伟大的时刻,今天要上的这道题,是刚刚考完的海淀区区赛第一题. 题目描述: 已知RFdragon有n个杯子,每个杯子的容积都是无限大,里面都装有1L水.由于RFdragon的杯子实在太多了,他决定扔掉一些杯子,使剩下的杯子不超过k个.RFdragon每次可以把两个装水体积相同的杯子中的水倒在其中一个杯子里,然后扔掉另一个杯子.有时候,RFdragon无论如何也不能使剩下的杯子不超过

leetcode中第一题twosum问题解答算法的可行性证明

leetcode中第一题twosum问题解答算法的可行性证明 一.引入 关于leetcode中第一题twosum问题,网上已有不少高人做出过解答,并提出了切实可行的算法实现.我在解答该题时参考了博客http://www.zixue7.com/article-9576-1.html的解答.为让读者更直观地阅读和理解本文,先简要摘录以上博客的内容如下: 题目还原 Two Sum Given an array of integers, find two numbers such that they a