dalao可以帮忙看看第三题逻辑哪里错了吗。。。 int nums[10] = {0,2,5,5,4,5,6,3,7,6}; int main() {     int n, m;     cin >> n >> m;     vector<int> can(m);     for (int i = 0; i < m; i++) {         cin >> can[i];     };     sort(can.begin(), can.end(), greater<int>());     vector<int> dp(1+n, 0);     for (int i = 0; i < m; i++) {         int x = can[i], cost = nums[x];         for (int i = cost; i <= n; i++) {             if (i - cost == 0 || dp[i - cost] != 0)                 dp[i] = max(dp[i], dp[i - cost] * 10 + x);         }     }     cout << dp[n] << endl; }
点赞 3

相关推荐

牛客网
牛客企业服务