计蒜客 平分娃娃

问题描述

蒜头君酷爱收集萌萌的娃娃。蒜头君收集了 6 种不同的娃娃,第 i 种娃娃的萌值为 i(1≤i≤6)。现在已知每种娃娃的数量 mi,蒜头君想知道,能不能把娃娃分成两组,使得每组的娃娃萌值之和相同。 
输入格式 
输入一行,输入 6 个整数,代表每种娃娃的数量 mi(0≤mi≤20,000)。 
输出格式 
输出一行。如果能把所有娃娃分成萌值之和相同的两组,请输出Can be divided.,否则输出Can’t be divided.。 
样例输入 
2 0 1 1 2 1 
样例输出 
Can’t be divided.
解题思路:先判定萌值是否为偶数,若非,则不能平分;若是,将多重背包问题转化为01背包进行dp求解,是否可以为萌值总和的一半即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int m[10];//代表每种娃娃的数量 
int p[1200010];//每种娃娃的萌值 
int k=0,flag=0;
ll sum=0;
ll dp[1200010];
void solve()
{
	for(ll i=1;i<=k;i++){
		for(ll j=sum/2;j>=1;j++){
			if(p[i]<=j){
				dp[j]=max(dp[j-1]+p[i],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值