ADV-15-最大乘积
来源:互联网 发布:mac c语言编程软件 编辑:程序博客网 时间:2024/06/05 20:36
问题描述
对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢?
输入格式
第一行一个数表示数据组数
每组输入数据共2行:
第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,
第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。
每组输入数据共2行:
第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,
第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。
输出格式
每组数据输出1行,为最大的乘积。
样例输入
1
5 5
1 2 3 4 2
5 5
1 2 3 4 2
样例输出
48
//-C--------#include<stdio.h>#include<stdlib.h>#include<string.h>int max;void fun(int *val,int index,int size,int m,int cnt,int res);int main(){int n,m,x,i;int val[15];scanf("%d",&x);while(x--){scanf("%d %d",&n,&m);for(i=0;i<n;i++){scanf("%d",&val[i]);}max = -10000000;fun(val,0,n,m,0,1);printf("%d\n",max);}return 0;}void fun(int *val,int index,int size,int m,int cnt,int res){if(m==cnt){if(res > max){max = res;}return ;}if(index>=size){return ;}fun(val,index+1,size,m,cnt+1,res*val[index]);fun(val,index+1,size,m,cnt,res);}//------------C++-----------#include "iostream"#include "stdio.h"#include "string"#include "math.h"#include "ctype.h"#include "vector"#include "stdlib.h"#include "string.h"#include "time.h"#include "set"#include "algorithm"using namespace std;int ans=-(1<<29);int n,m;int a[1000];void dfs(int *a,int cur,int sum,int k){if(k>m)return ;if(cur==n){if(k==m)ans=std::max(ans,sum);return ;}dfs(a,cur+1,sum*a[cur],k+1);dfs(a,cur+1,sum,k);}int main(){int T;cin>>T;while(T--){cin>>n>>m;for (int i = 0; i < n; i++){cin>>a[i];}ans=-(1<<29);dfs(a,0,1,0);cout<<ans<<endl;}return 0;}
阅读全文
0 0
- ADV-15-最大乘积
- 蓝桥杯 ADV-15算法提高 最大乘积
- 蓝桥杯 ADV-15 算法提高 最大乘积
- 最大乘积
- 乘积最大
- 乘积最大
- 乘积最大
- 乘积最大
- 最大乘积
- 最大乘积
- 最大乘积
- 最大乘积
- 最大乘积
- 乘积最大
- 乘积最大
- 最大乘积
- 乘积最大
- 乘积最大
- 剑指offer 数组中的逆序对
- Mybatis mapper代理开发方法实现增删改查
- mysql5.7官网直译SQL语句优化--IS NULL查询优化
- hive中order by,sort by, distribute by, cluster by作用以及用法
- Docker 学习
- ADV-15-最大乘积
- 面向对象五大原则、三大特征
- 解决BackBox中Fcitx输入法中文输入状态下不显示候选词框的问题
- C语言中控制输出格式
- My first blog
- leetcode练习(441,442)python实现
- 链表问题---将单链表的每K个节点之间逆序
- 洛谷P2049 魔术棋子
- Mybatis Configuration.xml中properties属性定义