蓝桥杯--算法提高 最大乘积(DFS)
来源:互联网 发布:小丸压制软件 编辑:程序博客网 时间:2024/06/07 00:53
- Problem
对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢?
- Solution
数据规模不大,直接DFS穷举每一种组合,计算最大乘积。
# include <iostream># include <cstdio># include <cstring>using namespace std;const int maxn = 20;int n, m;int a[maxn], b[maxn], used[maxn];int ans;void dfs(int pos){ if(pos == m){ int product = 1; for(int i = 0; i < m; ++i){ product *= b[i]; } if(ans < product) ans = product; return; } for(int i = 0; i < n; ++i) { if(!used[i]) { b[pos] = a[i]; used[i] = true; dfs(pos + 1); used[i] = false; } }}int main(){ //freopen("data.in", "r", stdin); int test; cin >> test; while(test--) { cin >> n >> m; ans = -0xFFFF; memset(b, 0, sizeof(b)); memset(used, 0, sizeof(used)); for(int i = 0; i < n; ++i) cin >> a[i]; dfs(0); cout << ans << endl; }}
0 0
- 蓝桥杯--算法提高 最大乘积(DFS)
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯算法提高 最大乘积
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯 算法提高 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- Python Class 的实例方法/类方法/静态方法
- c++11新特性
- python 学习笔记2
- Spring MVC 注解Date类型序列化问题
- Sublime Text2 插件安装教程
- 蓝桥杯--算法提高 最大乘积(DFS)
- FreeRTOS timer定时器源码分析
- Python学习练习:批量移动文件
- 安卓AssetManager的一个坑
- 加载完场景之后的工作
- Qt之自定义界面(窗体缩放-跨平台终极版)
- java正则表达式
- mybatis--一对多
- node.js POST流程