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

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

筛选

一维迭代解法

摘要:解题思路:与一楼的思路一致,但因为用set会超时,所以采用了以下方法优化参考代码:#include<bits/stdc++.h>using namespace std;int n;int g[1000……

c++哈希表去重

摘要:解题思路:注意事项:不能重复利用自己产生的重量参考代码:#include <iostream> #include<bits/stdc++.h> using namespace std; #def……

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

解题思路:动态规划注意事项:创建一个dp矩阵,以题中的例子为例,个数是3,三个砝码的重量之和是11,所以创建3*12的矩阵,创建12列能够保证下标就是砝码的和参考代码:n=int(input())list1=list(map(int,input().strip().split()))Sum=0fori

01背包的变种

解题思路:当我看到这题的第一眼立马就想到了dfs在没有使用记忆化搜索是只拿了45分,于是开始了dp,在看了一些大佬的讲解后,明白了这个01背包的变种问题,我们把题目看成这样,有一个容量为max(砝码总重量)的背包,每个砝码就是一件商品,你要做的不是选出价值最大的选法,

砝码称重(c++dp解法)

解题思路:动态规划dp解法for循环i不断加入砝码当前状态=不加/右加/左加:dp[i+1][j]=dp[i][j]||dp[i][j+w[i]]||dp[i][abs(j-w[i])];参考代码:#includeusingnamespacestd;intmain(){i

蓝桥杯2021年第十二届省赛真题-砝码称重(DP)

动态规划问题:bool类型DP数组代表对于前i个砝码是否可以称出重量j(默认左盘放待称物体)有三种情况:不加第i个砝码也能称出来dp[i-1][j]加在右盘dp[i-1][j+arr[i]]j加载左盘dp[i-1][abs(j-arr[i])]三种情况只要有一种为真既可#include