求给定序列中k个序列,满足k个序列的和一定,但平方和最大(有错误)修改了
2018-03-25 20:41
155 查看
#include <iostream>
#include <stdio.h>
using namespace std;
const int maxn=20;
int num[maxn],ans[maxn];
const int x=6,k=2;
int count=0;
int maxsumsqu=0;
void dfs(int index,int nowk,int sum,int sumsqu){
if(nowk==k && sum==x){
if(sumsqu>maxsumsqu){
maxsumsqu=sumsqu;
for(int i=0;i<nowk;i++){
printf("%d",ans[i]);
}
}
return ;
}
if(index==x || nowk >k || sum>x) return ;
ans[count]=num[index];
count++;
dfs(index+1,nowk+1,sum+num[index],sumsqu+num[index]*num[index]); //选择index 数字;
count--;
dfs(index+1,nowk,sum,sumsqu); //不选择index数字;
}
int main(int argc, char** argv) {
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
dfs(0,0,0,0);
return 0;
}
#include <stdio.h>
using namespace std;
const int maxn=20;
int num[maxn],ans[maxn];
const int x=6,k=2;
int count=0;
int maxsumsqu=0;
void dfs(int index,int nowk,int sum,int sumsqu){
if(nowk==k && sum==x){
if(sumsqu>maxsumsqu){
maxsumsqu=sumsqu;
for(int i=0;i<nowk;i++){
printf("%d",ans[i]);
}
}
return ;
}
if(index==x || nowk >k || sum>x) return ;
ans[count]=num[index];
count++;
dfs(index+1,nowk+1,sum+num[index],sumsqu+num[index]*num[index]); //选择index 数字;
count--;
dfs(index+1,nowk,sum,sumsqu); //不选择index数字;
}
int main(int argc, char** argv) {
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
dfs(0,0,0,0);
return 0;
}
相关文章推荐
- 求一堆序列,给定k个序列,求平方和最小
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱).
- oracle如何修改 序列当前的最大值?
- 每天一道LeetCode-----计算给定序列中所有长度为k的滑动窗的最大值集合
- 给定正整数b,求最大的整数a,满足a*(a+b) 为完全平方数
- 写出一个算法,对给定的n个数的序列,返回序列中的最大和最小的数
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱). 第二解
- 给定整数序列求连续子串最大和 - 滴滴出行2018校园招聘内推笔试-研发工程师
- 返回给定的n个数的序列中的最大数和最小数
- 给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
- Hdu 5314 Happy King(求树上多少个点对(u,v)满足u到v的路径上点权值最大值减最小值不大于给定的K)
- hdu 2529 数论好题 给定一个速度v 水平距离一定问能上升的最大高度
- 求一个数组中满足一定条件的两个元素的最大差值
- 数据结构与算法——给定整数A1,A2,....An,....(可能有负数),求该数据序列的最大子序列的和
- 一道题:给定一整数序列A1,A2,...,An(可能有负数),求A1到An的一个自序列,使得Ai到Aj的和最大。例如:整数序列-2,11,-4,13,-5,2,-5,-3,12,-9的最大子序列为21
- 对给定的n个数的序列,返回序列中的最大和最小的数
- hdu6003 Problem Buyer 贪心 给定n个区间,以及m个数,求从n个区间中任意选k个区间,满足m个数都能在k个区间中找到一个包含它的区间,如果一个区间包含了x,那么 该区间不能再去包含另一个数,即k>=m。求最小的k。如果不存在这样的k,输出“IMPOSSIBLE!”。
- 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。 测试样例: [10,5],2 返回:0
- 给定正整数b,求最大的整数a,满足a*(a+b) 为完全平方数
- 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。