藍橋杯2018決賽 最大乘積 附解題思路

2021-10-10 12:14:36 字數 1103 閱讀 9655

時間限制: 1 sec 記憶體限制: 256 mb 提交: 158 解決: 81

題目描述

把 1~9 這9個數字分成兩組,中間插入乘號,

有的時候,它們的乘積也只包含1~9這9個數字,而且每個數字只出現1次。

比如:984672 * 351 = 345619872

98751 * 3462 = 341875962

9 * 87146325 = 784316925

…符合這種規律的算式還有很多,請你計算在所有這些算式中,乘積最大是多少?

輸出輸出乙個整數表示答案

思路看注釋

全排列+暴力

#include

#include

using

namespace std;

typedef

long

long ll;

int a=

;ll ans =0;

//記錄答案

bool

is(ll x)

;int k =0;

while

(x)int c[10]

=;for(

int i =

0; i < k; i++

)for

(int i =

1; i <

10; i++)}

return

true;}

void

work()

for(

int j = i; j <

9; j++

) ll sum = sum1*sum2;

if(ans > sum)

continue;if

(is(sum)

) ans =

max(ans,sum);}

}int

main()

while

(next_permutation

(a,a+9)

);//全排列

cout << ans << endl;

}

藍橋杯 2018決賽 最大乘積 (全排列暴力)

題目描述 把 1 9 這9個數字分成兩組,中間插入乘號,有的時候,它們的乘積也只包含1 9這9個數字,而且每個數字只出現1次。比如 984672 351 345619872 98751 3462 341875962 9 87146325 784316925 符合這種規律的算式還有很多,請你計算在所有...

藍橋杯 最大乘積

演算法提高 最大乘積 時間限制 1.0s 記憶體限制 512.0mb 問題描述 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?輸入格式 第一行乙個數表示資料組數 每組輸入資料共2行 第1行給出總共的數字的個數n和要取的數的個數m,1 n m 15,第2行依次給出這n個數,其中每個數字的...

藍橋杯 演算法提高 最大乘積

演算法提高 最大乘積 時間限制 1.0s 記憶體限制 512.0mb 問題描述 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?輸入格式 第一行乙個數表示資料組數 每組輸入資料共2行 第1行給出總共的數字的個數n和要取的數的個數m,1 n m 15,第2行依次給出這n個數,其中每個數字的...