竞赛
考级
法兰西玫瑰
这道题的解题思路是使用动态规划。我们定义一个一维数组 dpdpdp ,其中 dpdpdp [ iii ] 表示能否用这些砝码称出重量 iii 。 初始时,我们假设可以用一个砝码称出重量为 000 ,即 dpdpdp [ 000 ] === 111 。然后,对于每一种砝码,我们遍历其个数,更新 dpdpdp 数组。具体而言,对于每个砝码,我们将其放入称重的过程中,逐步更新可以称出的不同重量的状态。 这里采用了三重循环: 外层循环遍历每一种砝码。 中层循环遍历当前砝码的个数。 内层循环倒序遍历 dpdpdp 数组,逐步更新能够称出的不同重量。 最终,统计 dpdpdp 数组中值为 111 的元素的个数,即为能够用这些砝码称出的不同重量的个数。
AC君
dchk-SY
TN Hacker
q
#include<bits/stdc++.h> using namespace std; int a[7], b[7] = {0, 1, 2, 3, 5, 10, 20}; bool dp[1001]; int main() { // 输入各种砝码的个数 for (int i = 1; i <= 4; i--) cin >> a[i]; }
还没想好
提交答案之后,这里将显示提交结果~