首页 > 其他分享 >【蓝桥杯·dp问题】砝码称重

【蓝桥杯·dp问题】砝码称重

时间:2024-03-23 20:29:23浏览次数:13  
标签:const int 重量 蓝桥 summ 砝码 include dp 称重

此题易联想到使用动态规划解决,dp[i][j] 状态表示是否存在前i个砝码中选取重量为j的方案。

砝码重量分三种情况:

1. 砝码本身的重量(即一个砝码就可以表示的重量)

2. 放在同侧

3. 放在异侧

注意重量为0的情况不记作方案数。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;

const int N=110;
const int M=1e5+10;
int d[N][M];
int w[N];
int n,summ,cnt;

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>w[i];
		summ+=w[i];
	}//for
	
	//cout<<summ<<endl;
	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=summ;j++){
			d[i][j]=d[i-1][j];
			if(d[i][j]==0){
				if(j==w[i]) d[i][j]=1; //单个砝码表示的重量 
				if(d[i-1][j+w[i]]) d[i][j]=1; //放在异侧的情况 (减去当前砝码重量符合要求) 
				if(d[i-1][abs(j-w[i])]) d[i][j]=1; //放在同侧的情况 (加上当前砝码重量符合要求) 
				
				}
			
		}//for2
		
	}//for1
	
	
	for(int j=0;j<=summ;j++){
		if(d[n][j]==1) cnt++;
	}//for2
	
	cout<<cnt<<endl;
	
	return 0;
}//main

标签:const,int,重量,蓝桥,summ,砝码,include,dp,称重
From: https://blog.csdn.net/bjtu_yy/article/details/136974503

相关文章

  • [暴力题解系列]2023年蓝桥杯-子串简写
    ​ 大伙都说暴力是最低级的算法,啊那确实。但是好的暴力才是真正牛逼的骗分。咱就是说,暴力如何骗分呢?就是基于最暴力的算法一步步优化到能得更多分的暴力。子串简写这题,首先第一步就能想到一件事情:暴力枚举子串开头和末尾的位置,检查是否是符合题目要求的字符,如果是,并且长度大于......
  • 【蓝桥杯】(3.19矩形总面积)
    #include<iostream>#defineLLlonglongusingnamespacestd;intmain(){LLx1,y1,x2,y2,x3,y3,x4,y4;cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;LLs1,s2,s;s1=(x2-x1)*(y2-y1);s2=(x4-......
  • 第十三届蓝桥杯省赛真题 Java C 组【原卷】
    文章目录发现宝藏【考生须知】试题A:排列字母试题B:特殊时间试题C:纸张尺寸试题D:求和试题E:\mathbf{E}:......
  • P8756 [蓝桥杯 2021 省 AB2] 国际象棋 题解
    设计状态什么的就不讲了,这里是对其它题解的优化。怎么优化呢,我们可以知道的是我们只要明确了当前行的状态,上一行的可选集就是知道的,如果我们明确了当前行以及上一行的状态,那么上上行的可选集就是知道的,于是我们就可以使用二进制子集枚举来写,这样就减去了全部不合法的枝叶,我们可以......
  • 为什么DNS使用UDP(端口号是53)而不是TCP
    DNS(DomainNameSystem)使用UDP(UserDatagramProtocol)而不是TCP(TransmissionControlProtocol)的主要原因是出于性能和效率的考虑。下面详细解释为什么DNS选择使用UDP协议:小型请求和快速响应:DNS查询通常是小型请求,仅需要几个字节的数据传输。UDP是无连接的协议,它不需要在通信之......
  • 高通平台怎么检测充电器类型为SDP,CDP,DCP
    高通平台(QualcommSnapdragon)检测充电器类型SDP(StandardDownstreamPort,标准下行端口)、CDP(ChargingDownstreamPort,充电下行端口)和DCP(DedicatedChargingPort,专用充电端口)是基于USBBatteryChargingSpecification1.2(USBBC1.2)或更高版本的规定实现的。这些充电类型主要是通......
  • 第十四届蓝桥杯大赛软件赛省赛Python 《01串的熵》
    问题描述问题类型暴力,枚举、问题分析由例题知对于一个长度为L的01串,设0出现的次数为x,则1出现的次数为L-x,其信息熵整理后可表示为:基于此,我们可以给出当长度L=23333333的01串,其信息熵为11625907.5798时,该字符串中0和1的个数分别为多少。题目限制0出现的次数比1少,可以通过......
  • 蓝桥杯嵌入式(STM32G431RBT6)——扩展板——IC采集频率(PUSL1、PUSL2)
    1.原理图2.Cubemx配置3.代码(1)timer.c#include"timer.h"unsignedintPUSL1_frq_T2CH2=0;unsignedintPUSL2_frq_T2CH3=0;uint32_tuwIC2Value1_T2CH2=0;//第一次捕获上升沿的时间uint32_tuwIC2Value2_T2CH2=0;//第二次捕获上升沿的时间uint32_tu......
  • 蓝桥杯:数的分解
    题目把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。思路循环遍历看每个数的每位代码#include<iostream>usi......
  • 【蓝桥杯嵌入式】四、各种外设驱动(十一)ADC(1):软件触发与中断触发方式
    温馨提示:本文不会重复之前提到的内容,如需查看,请参考附录【蓝桥杯嵌入式】附录目录重点提炼:一、需求分析1、需要的外设资源分析: 2、外设具体分析:比赛时ADC可能需要配置的部分:二、软件配置按照分析配置外设:ADC2_IN15:采用软件触发的方式 ADC1_IN11:采用TIM6触发的方......