题解 2604: 蓝桥杯2021年第十二届省赛真题-砝码称重

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

一维dp,一个砝码拆成一正一反两个砝码

摘要:解题思路:注意事项:参考代码:#include<bits/stdc++.h>//一维dp,思路是//把每个砝码拆成一正一反两个质量,这样所有砝码都只需要放左边就行了。using namespace s……

dp,一维数组,两重循环

解题思路:设置数组weight_able[100000],weight_able[i]==1代表能称i重量的物品,反之则代表不能。增添砝码i,用当前能称取的所有重量与法码i的重量作和(差),更新weight_able数组,考虑到最后一个砝码时,此题求得解。

2604: 蓝桥杯2021年真题-砝码称重(unordered_set)

##unordered_set**又学到了一个重要的数据结构!!unordered_set:用于存放无序、不重复的数据(重复数据会被自动过滤)set:用于存放有序、不重复的数据unordered_map的value也不可重复,但是键和值成对出现,

01背包思想辅助解题--java

解题思路:(先要自己弄清楚装箱问题)首先,要明确这道题中,砝码有两种放法,一种是同侧一种是异侧放法.同侧也就是在求和,异侧就是在求差.在同侧求和时,我采用装箱问题的解决思路(因为数据多时,排列情况太多了),以下是求和的具体思路:1、首先求出砝码的总重(总重量就可以看做装箱问题中箱子的最大容量)2、各个

动态规划,用set代替list就可以跑完全部数据

解题思路:动态规划,新加的砝码和目前所得的质量可以相加,相减(两种情况,新砝码减旧质量或旧质量减新质量),将所得的结果(大于0)存入dp,供下一次使用,注意事项:中间要专门设一个列表,用于存储新称的重量,不能直接存入dp,用set集合可以比list速度快参考代码:n=int(input())arr=l
优质题解

迭代解决砝码称重(java)(非动态规划)

###注意事项1.砝码可以放在天平左端,也可以放在天平右端2.不同砝码可能称出同一重量3.0不算重量(隐含条件)###思路分析看过一些大师傅的题解,上来直接动态规划,对于我这样才学几个月算法的小白来说,实在是有点勉强,看是大概看明白了,但是要自己从零想出来并写出来还是有一定的难度,

动态规划砝码称重

n=int(input())li=list(map(int,input().split()))#给出n个砝码的重量weigh=sum(li)#对列表li求和,得出砝码能称出的最大重量weigh#建立二维数组,dp[i][j]==1表示当有列表li中前i个砝码时可以称出重量jdp=[[0foriinra

2604: 砝码称重

#思路设有数组dp[i][j],其中dp[i][j]:当前的砝码为i时,是否能称出j重量的物品当dp[i][j]时此时有三种情况:1.不放第i个砝码,此时dp[i][j]=dp[i-1][j]2.放第i个砝码,将重量减小,此时dp[i][j]=dp[i-1][abs(j-w[i])]3.放第i个砝码,