题目大意:
首先看了这题目就想:这真是 (T) 一 (M) 道 (D) 好(keng) 题 (die)
题目描述简直长的不忍直视,题目也是水得不忍直视
题目大概就是这个意思:
输入两个数n,m
接下来有n个在[-3,3]之间的整数,然后要你取出中间一些数使得这些数的m次幂的和最大(可以不选,即最大值不会小于0-----我是这么认为的)
解题思路:
观察到数字只有[-3,3],这么小?吓傻了吧!直接开数组存下每个的个数即可,不难发现只要一个数k满足k^m>=0就可以把它加入和中,求出来的一定是最大值
AC代码:
//我是淳朴的C党
#include <stdio.h>
#include <math.h>
int n,m;
int t[10]={0};
int ans=0;
int main()
{
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&j);
t[j+3]++;
}
for(i=0;i<=6;i++)
{
if(pow(i-3,m)>=0)
ans+=pow(i-3,m)*t[i];
}
printf("%d",ans);
return 0;
}