【个人训练】(POJ1837)Balance
这几天抓住国庆的黄金时间(因为没有女朋友,天天刷题emmmm 其实还在肝少前还要捞秋刀鱼) ,重点攻克掉几个基本的地方:搜索、dp、图论。这几天的题目应该就是这些范围。
题意
原题的意思大概是这样的,有个天平,上面一堆挂钩,然后一堆砝码,砝码挂在挂钩上面,问平衡的情况有几种。
分析
显然不能穷举,因为O(2020)的复杂度太高了。我们不妨换个思路想:在我们放上一个砝码的时候,究竟发生了什么?
我们可以放在任何一个挂钩上,有c个决策。他们产生了什么影响?我们采取第ci个挂钩放置第i个物品时,令我们从k−1个物品产生力臂和为x的状态转移到了k个物品产生力臂和为x+ci×wi的状态上去。由此,我们得到了这样的一个状态转移方程:(上下符号不统一)
dp[i][j+c[i]×g[k]]=∑dp[i−1][j]
说的应该还是有些啰嗦,以后再改吧,唉。。。
代码
这份代码基本上和网上另外一个dalao是一样的,因为跟着ta的思路走的。太菜了啊,唉。。。。
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue>
#include <set>
#include <map>
#include <vector>
using namespace std;
typedef unsigned long long ull;
int rep[24],val[24];
int dp[25][15005];
int main()
{
int c,g;
while(cin>>c>>g)
{
for(int i=1;i<=c;++i) cin>>rep[i];
for(int i=1;i<=g;++i) cin>>val[i];
memset(dp,0,sizeof(dp));
dp[0][7500]=1;
for(int i=1;i<=g;++i)
for(int j=1;j<=15000;++j)
if(dp[i-1][j])
for(int k=1;k<=c;++k)
dp[i][j+val[i]*rep[k]]+=dp[i-1][j];
cout<<dp[g][7500]<<endl;
}
return 0;
}
【个人训练】(POJ1837)Balance的更多相关文章
- POJ1837 Balance[分组背包]
Balance Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13717 Accepted: 8616 Descript ...
- poj1837 Balance
Balance POJ - 1837 题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数. 其中可以把天枰看做一个以x轴0点 ...
- POJ1837 Balance(DP)
POJ1837http://poj.org/problem?id=1837 题目大意就是说有一个称上有C个挂钩,告诉你每个挂钩的位置,现在有G个重物,求是之平衡的方法数. 转化一下:DP[i][j]表 ...
- POJ1837 Balance 背包
题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子(每个钩子有相对于中心的距离,左负右正),有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数. 将每个砝码看作一组,组内各个物品 ...
- poj 01背包
首先我是按这篇文章来确定题目的. poj3624 Charm Bracelet 模板题 没有要求填满,所以初始化为0就行 #include<cstdio> #include<algo ...
- poj分类解题报告索引
图论 图论解题报告索引 DFS poj1321 - 棋盘问题 poj1416 - Shredding Company poj2676 - Sudoku poj2488 - A Knight's Jou ...
- POJ之01背包系列
poj3624 Charm Bracelet 模板题 没有要求填满,所以初始化为0就行 #include<cstdio> #include<iostream> using na ...
- [专题论文阅读]【分布式DNN训练系统】 FireCaffe
FireCaffe Forrest N. Iandola FireCaffe: near-linear acceleration of deep neural network training on ...
- SSD框架训练自己的数据集
SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证.本文介绍如何使用SSD实现对自己数据集的训练和验证过程,内容包括: 1 数据集的标注2 数据集的转换3 使用SSD如 ...
随机推荐
- Vue.js系列之vue-resource(6)
网址:http://blog.csdn.net/u013778905/article/details/54235906
- 【题解】洛谷P1262 间谍网络 (强连通分量缩点)
洛谷P1262:https://www.luogu.org/problemnew/show/P1262 思路 一看题目就知道是强连通分量缩点 当图中有强连通分量时 将其缩点 我们可以用dfn数组判断是 ...
- js标准对象——Date
在JavaScript中,Date对象用来表示日期和时间. 要获取系统当前的时间: var now = new Date(); alert(now); now;//Mon Oct 23 2017 11 ...
- sudo cd的错误
问题说明 今天用MySQL建了库,想看看. 当到了这步,心里的第一个感觉就是电脑坏了.后来查了查才知道了原因. 原因 cd不是一个应用程序而是Linux内建的命令,而sudo仅仅只对应用程序起作用. ...
- 轻量ORM-SqlRepoEx (五) 存储过程操作
.Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现 ...
- 菜鸟笔记 -- Chapter 6.2.1 权限修饰符
6.2.1 权限修饰符 面向对象的三大特性就有封装,封装隐藏了对象的属性和实现细节,仅对外提供公共访问方式,而这个访问方式就是由权限修饰符控制的.Java中的权限修饰符主要包括private.pub ...
- 搭建一个java开发环境的步骤
首先思考java开发环境需要些什么? 1.适用于我们开发环境的jdk 2.对应开发环境的IDE 3.如果是web应用,还需要web服务器,常用的有Tomcat 1) 下载对应组件 2) 安装 jdk安 ...
- C#提取html中的汉字
using System.Text.RegularExpressions; private string StripHT(string strHtml) //从html中提取纯文本 { Regex r ...
- ECMAScript面向对象术语
面向对象术语1.对象ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组.尽管 ECMAScript 如此 ...
- JVM 垃圾回收机制和常见算法和 JVM 的内存结构和内存分配(面试题)
一.JVM 垃圾回收机制和常见算法 Sun 公司只定义了垃圾回收机制规则而不局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同.GC(Garbage Collector)在回收对象前首先必 ...