時間限制: 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個數,其中每個數字的...