POJ1837-Balance

【POJ 1837】Balance 题目描述 有一个天平,天平左右两边各有若干个钩子,总共有 C 个钩子,有 G 个钩 码,求将钩码全部挂到钩子上使天平平衡的方法的总数。输入描述 第一行两个数 c, g 分别代表钩子数和钩码数 第二行 c 个数,表示每个钩子距离天平中央的距离 c[i],负数表示在左边, 正数表示在右边 第三行 g 个数,表示每个钩码的重量 w[i]输出描述 输出总方案数样例输入 2 4 -2 3 阅读详情

Gigel has a strange “balance” and he wants to poise it. Actually, the device is different from any other ordinary balance.
It orders two arms of negligible weight and each arm’s length is 15. Some hooks are attached to these arms and Gigel wants to hang up some weights from his collection of G weights (1 <= G <= 20) knowing that these weights have distinct values in the range 1..25. Gigel may droop any weight of any hook but he is forced to use all the weights.
Finally, Gigel managed to balance the device using the experience he gained at the National Olympiad in Informatics. Now he would like to know in how many ways the device can be balanced.

Knowing the repartition of the hooks and the set of the weights write a program that calculates the number of possibilities to balance the device.
It is guaranteed that will exist at least one solution for each test case at the evaluation.
Input
The input has the following structure:
• the first line contains the number C (2 <= C <= 20) and the number G (2 <= G <= 20);
• the next line contains C integer numbers (these numbers are also distinct and sorted in ascending order) in the range -15..15 representing the repartition of the hooks; each number represents the position relative to the center of the balance on the X axis (when no weights are attached the device is balanced and lined up to the X axis; the absolute value of the distances represents the distance between the hook and the balance center and the sign of the numbers determines the arm of the balance to which the hook is attached: ‘-’ for the left arm and ‘+’ for the right arm);
• on the next line there are G natural, distinct and sorted in ascending order numbers in the range 1..25 representing the weights’ values.
Output
The output contains the number M representing the number of possibilities to poise the balance.
Sample Input
2 4
-2 3
3 4 5 8
Sample Output
2

题意:第一行给出n个钩子,m个砝码,接下来是n个钩子的位置,然后m个砝码的重量。问有几种方法能让砝码全部挂在钩子上且天平平衡。
思路:naive 20^20暴搜? 做这题的时候想起了同济惨案2333类似题我直接暴搜了一发。比赛之后问强神怎么做233说用背包。做这题的时候就直接想到了背包。感觉这题还是个加强版,因为有钩子位置的问题所以每个砝码的权值有n种背包权值。每个砝码只能挂一次,但是权值有许多种,所以我们必须开二维背包。就相当于对第i个砝码的第j种权值和第i个砝码的第j+1种权值都是从第i-1个砝码得到的各个方案数转移过来的。
具体处理的时候为了避免出现负数,我们把所有权值同时加上最小值的绝对值这样平移范围可以避免负数出现。

#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<vector>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<stack>
#include<map>
#include<set>
using namespace std;

//thanks to pyf ...
//thanks to qhl ...

#define INF 0x3f3f3f3f
#define CLR(x,y) memset(x,y,sizeof(x))
#define mp(x,y) make_pair(x,y)
typedef pair<int, int> PII;
typedef long long ll;

const int N = 1e5 + 5;

int dp[30][N];
int mul[N], w[N];

int main()
{
    int n, m;
    while (cin >> n >> m)
    {
        for (int i = 1; i <= n; i++)
            cin >> mul[i];
        for (int i = 1; i <= m; i++)
            cin >> w[i];
        CLR(dp, 0);
        dp[0][7500] = 1;
        for (int i = 1; i <= m; i++)
        {
            for (int k = 1; k <= n; k++)
            {
                int cur = mul[k] * w[i];
                for (int j = 15000; j >= cur; j--)
                    dp[i][j] += dp[i - 1][j - cur];
            }
        }
        cout << dp[m][7500] << endl;
    }
}
单细胞RNA测序数据分析与可视化:从基础原理到高级应用 单细胞RNA测序(scRNA-seq)技术通过解析单个细胞的基因表达谱,显著提升了我们对细胞异质性的理解。本文详细介绍了scRNA-seq数据分析的完整流程,包括数据预处理、质量控制、降维、聚类、差异表达分析、细胞类型注释、细胞周期分析、轨迹分析、RNA速率分析、基因集富集分析、细胞通讯分析、批次效应校正以及空间转录组学整合。文章还展示了scrna_toolkit包在简化分析流程和增强数据可视化方面的应用。通过这一工具,研究者可以更高效地处理单细胞数据,揭示复杂的生物学信息。未来,该工具将进一步整合多组学分 阅读详情

相关推荐

非华为电脑也能用!华为电脑管家完美安装教程来了

GitHub 上有一个开源项目 ​****​,专门解决“非华为设备无法安装华为电脑管家”的问题。它通过智能模拟 + DLL 劫持技术,绕过官方对硬件型号的检测,让你在联想、戴尔、华硕甚至 DIY 主机上也能流畅使用华为电脑管家!⭐ 项目已获 ​700+ Stars​,社区活跃,持续更新,兼容性优秀!科技不该有围墙。如果你成功在非华为电脑上跑起了 PCManager,欢迎在评论区晒出你的设备型号 + 使用体验!也别忘了把这篇推文分享给同样“眼馋”华为生态的朋友 ~📱 ​关注我们。

程序员朱永胜 4910

poj1837Balance

题意:一个杠杆,中心有支点,两边有挂钩,挂钩位置由输入给定。有一些砝码,砝码重量由输入给定。一个挂钩下可以挂多个砝码,也可以什么都不挂,但每个砝码必须都用。问有多少种组合方式,可以使杠杆平衡。 分析:像这种组合方式很多,但状态空间却不大的,一般都可以交给DP。 dp[i][j]表示放置第i个物品后,总质量为j的可能组合的数量。 状态转移方程 dp[i+1][j]=sum{dp[i][

古古天的博客 1077

不止是回退SDK:深入解读UE5.2编译时那个烦人的C4756警告与INFINITY宏的变迁

本文深入解析了UE5.2源码编译时出现的C4756警告及其背后的技术原因,探讨了Windows SDK中INFINITY宏的变迁对Unreal Engine的影响。文章详细介绍了微软修改INFINITY定义的技术考量,并提供了UE5.2应对此类问题的灵活解决方案,包括通过BuildConfiguration.xml文件精确控制工具链版本,确保构建系统的可重复性和可配置性。

weixin_27180827的博客 310

POJ1837

比较简单的一个DP问题,直接上代码了 #include #include int dp[21][15000]; int C, G, a[21], b[21]; int main() { scanf("%d %d", &C, &G); int i,j,k; for (i = 1; i <= C; i++) { scanf("%d", &a[i]); } for (i = 1; i

qq_30537063的博客 464

MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出

MS2107 是一款视频和音频采集芯片,支持CVBS转USB2.0 ;可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。

TEL18967112838的博客 2075

芯片低功耗设计的两种常用EDA流程

如题。

EricWZY2008的专栏 5556

POJ 1837 Balance(动态规划之背包问题)

Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11436   Accepted: 7130 Description Gigel has a strange "balance" and he wants to poise it. Actually,

LYHVOYAGE的专栏 2408

PLC控制气缸与电磁阀:从原理到实战编程详解

在工业自动化领域,很多工程师都能编写PLC程序控制电机启停,但当涉及到气缸和电磁阀的精确控制时,却常常遇到动作不协调、响应延迟甚至设备损坏的问题。这背后的关键不在于PLC编程本身,而在于对气动元件特性和控制逻辑的深入理解。 本文将从实际工程问题出发,深入解析气缸与电磁阀的工作原理、PLC控制逻辑设计、常见故障排查方法,并通过完整的梯形图实例,帮助读者掌握气动系统自动化编程的核心要点。无论你是刚接触PLC的初学者,还是希望提升气动控制技能的工程师,都能从中获得实用的技术指导。 1. 气缸与电磁阀在自动化控制中

weixin_42522374的博客 337

POJ1837 Balance 题解

题目大意: 一个天平,分别给出c个位置和g个钩码的质量,求解所有钩码全部放上时有多少种使天平平衡的方案,输出方案数。样例输入: 2 4// 两个位置可放钩码,共四个钩码; -2 3//两个位置为平衡点左边(感性理解一下)第二格和右边第三格; 3 4 5 8//四个钩码的质量;样例输出: 2//有两种方案;样例解释: 把四个钩码按顺序标号为1,2,3,4,则: 方案一:“-2”位置放

dugudashen的博客 1273

基于DWA算法的机器人动态避障技术实现及matlab代码

DWA算法是一种基于轨迹的运动规划算法,其核心思想是:在机器人当前位置及速度的基础上,结合机器人感知到的环境信息,生成一组合法的速度指令,然后从这组速度指令中选取代价最小的速度指令作为机器人的下一步操作。下面,我们将通过一个实例来演示基于DWA算法的机器人动态避障技术实现。假设机器人在一个宽敞的场地内行驶,但场地内有一些固定障碍物和移动障碍物,机器人需要避开这些障碍物,并在场地内自由移动。本文给出了一种基于DWA算法的机器人动态避障技术实现及相应的matlab代码,读者可以根据自身需求进行修改和调整。

uote_e的博客 1002

Oracle EBS R12 主 / 辅助分类帐(主 / 辅助帐套)落地

本文提供了Oracle EBS R12主/辅助分类帐实施的全套文档模板,包含主帐套(法定帐套)和辅助帐套的完整配置清单、科目映射规则模板、4类典型调整分录示例(存货跌价、折旧差异、往来重分类、外币折算)以及税会/IFRS案例分录。重点阐述了主/辅助帐套的配置要点、SLA子分类帐关键配置、科目映射规则(一对一、多对一、重分类等类型)以及调整分录的自动生成逻辑。文档可直接用于项目实施,包含总体架构图、科目映射矩阵表、会计规则集配置等交付物,并附有Excel版模板便于直接使用。适用于需要实现多准则并行记账、税务调

金牌架构师 385

POJ 1837 Balance

/*********************************** Problem: POJ 1837 Balance Time: 16MS Memory: 748K Accepted Time: 2009-08-05 15:56:57 Tip: http://www.cppblog.com/guyuecanhui/articles/88193.html *****************...

万猫学社 1万+

vs2017配置liblas库+测试代码

之前已经配置好pcl(vs2017配置pcl),可以单独配置liblas,也可以在原有pcl属性表的基础上继续配置

孙悟空 4022

POJ 1837 Balance DP 二维背包

传送门:POJ 1837 Balance分析: g个挂钩挂上的极限值:15*25*20==7500。 那么在有负数的情况下是-7500~~7500 此时的平衡点为0。 我们当然可以将平衡点往右移7500个单位,范围就变成了 0~~15000。(正化方便处理,这样平衡点就是7500)代码如下:#include <stdio.h> #include <string.h> int dp[21][1

知 识 不 是 装 饰。 498

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[背包]poj1837 Balance

poj1837 Balance点击打开链接 题意: 谜一样的题意,英语太菜看了很久…… 有一个天平左右有很多钩子,每个钩子有不同的重量,而每个钩码有不同的价值,重量*钩码是其力矩,求把所有钩码挂到钩子上平衡(力矩平衡)的方案数 思路: 感觉就是背包…… 天平差看做体积,dp[i][j] 挂前i个钩子j平衡度(左右力矩之差)的方案数,不需要比较…… 至于为什么这么想,因为题目规

soundwave_的博客 455

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

POJ 刷题系列:1837. Balance

POJ 刷题系列:1837. Balance 传送门:1837. Balance 题意: 一个天枰上有C个钩子,把M个砝码挂在这些C个钩子上,问多少种平衡的挂法。 思路: 首先考虑单个砝码在天枰的位置,可以得到C个状态,对应的平衡度为:G[0] * C[i],记录这些初始平衡度的个数。这样当放入第二个砝码时,可以遍历这些平衡度,从而得到一个新的平衡度。此时,不同位置,不同质量的砝...

Demon-初来驾到 978

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

poj 1837 Balance(DP)

题目链接:http://poj.org/problem?id=1837 Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14310   Accepted: 9004 Description Gigel has a stran

far away 395

POJ 1837 Balance(DP)

题目:POJ 1837 Balance 题意:给一个天平,天平的左右臂长都为15,现在给c个挂钩位置和g个质量的勾码,求有几种方式放勾码可以使天平保持平衡。 解析:用到DP,所以要先弄清DP中的i和j是干什么用的,i的作用是用于存用了几个勾码,j的作用是用于存状态,比如都放在一边的头上,就是最大的之15*20*20=6000, 当j=6000时处于平衡,所以要开6000*2=12000的数组...

提拉米苏的博客 337

POJ 1837 Balance(01背包)

POJ 1837 Balance(01背包) http://poj.org/problem?id=1837 题意:        有一个天平,天平左右两边各有若干个钩子,总共有C个钩子(每个钩子有相对于中心的距离,左负右正),有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。 其中可以把天枰看做一个以x轴0点作为平衡点的横轴. 且每个砝码的重量不一定相同,且一个钩子下可以挂任意个不

code 1409

poj1837——balance

poj1837——balance 题目大意:一个天平上有一些挂钩(挂钩个数1&lt;=C&lt;=20),将一些砝码(砝码个数1&lt;=G&lt;=20)挂上去使天平平衡,问有多少种挂法 输入:挂钩个数C 砝码个数G             挂钩在天平坐标轴上的位置(-15&lt;=c[k]&lt;=15)(如-2 3)             砝码重量(1&lt;=w[i]&lt;=2...

tzyshiwolaogongya的博客 427

poj 1837 Balance(背包)

题目链接:http://poj.org/problem?id=1837 Balance Time Limit:1000MS Memory Limit:30000K Total Submissions:10983 Accepted:6824 Description Gigel has a strange "balance" a...

weixin_30621959的博客 131

POJ 1837 Balance(0-1背包)

题目来源:http://poj.org/problem?id=1837 问题描述 Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16582   ...

da_kao_la的博客 207
上一篇: 母函数简单应用小结
下一篇: 哈尔滨理工大学软件学院大一个人赛训练Round2 部分题解
OneDay_pyf
博客等级 码龄10年 6粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值