题意:

给定一堆硬币,然后将他们分成两部分,使得两部分的差值最小;输出这个最小的差值。

思路:

想了好久都没想到一个合适的状态转移方程。后面看了别人的题解后,才知道能够转成背包问题求解。

我们将全部的硬币和的一半作为背包容量,然后将硬币的代价看成其本身的面值。然后背包中能装的最大容量

就是当中一个人分得硬币数。

代码例如以下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; int main()
{
int i,j,k,t;
scanf("%d",&t);
while(t--)
{
int m,a[110],dp[100000],sum=0;
memset(dp,0,sizeof(dp));
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
int V=sum/2;
for(i=1;i<=m;i++)
for(j=V;j>=a[i];j--)
dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
printf("%d\n",sum-2*dp[V]);
}
return 0;
}

最新文章

  1. CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11
  2. 从DACPAC文件中读取元数据
  3. 使用Burpsuite破解Webshell密码
  4. SQL注入测试平台 SQLol -2.SELECT注入测试
  5. 洛谷P1251 餐巾(网络流)
  6. oracle spfile和pfile文件
  7. QL Server 中四种匹配符的含义
  8. DEVICE_OBJECT结构参数
  9. 深入理解querySelector(All)
  10. T-SQL 查询语句总结
  11. PHPCMS V9{loop subcat(0,0,0,$siteid) $r}怎么解释?
  12. java 类中的属性为什么一般都是私有的
  13. .NET Core中的路由约束
  14. PowerShell Empire使用笔记
  15. Ubuntu 增加swap空间大小
  16. 分布式配置 Spark 2.0版本 2.1版本 1.6版本
  17. js的字符串代码库及讲解
  18. Python2.7-difflib
  19. 存储过程—导出table数据为inser sqlt语句
  20. 基于express+mongodb+pug的博客系统——后台篇

热门文章

  1. (1)ActivityThread分析
  2. uboot代码2:stage2代码,启动内核
  3. Linux权限操作 [转]
  4. C++-struct类的新特性当class用
  5. mac下brew install 报错
  6. 《UNIX环境高级编程》笔记--read函数,write函数,lseek函数
  7. 一道c++小编程题,
  8. 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
  9. 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频
  10. mysql 结果集合切换