sgu163:Wise King
来源:互联网 发布:数据库审计产品资料 编辑:程序博客网 时间:2024/05/22 12:12
题意:
给出n个(n∈[1,100])整数ki∈[-3,3],一个整数m∈[1,3],取任意个数是使这些数的m次幂之和最大。
分析:
对每个ki取ki^m,然后DP。
设f[i]表示取第i个数的最大值,则f[i]=max{k[i],f[j]+k[i]},k∈[1,i)。
从f[i]中找最大值输出即可。
给出n个(n∈[1,100])整数ki∈[-3,3],一个整数m∈[1,3],取任意个数是使这些数的m次幂之和最大。
分析:
对每个ki取ki^m,然后DP。
设f[i]表示取第i个数的最大值,则f[i]=max{k[i],f[j]+k[i]},k∈[1,i)。
从f[i]中找最大值输出即可。
#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 110;int n, m, num[MAXN] = {0};int f[MAXN] = {0};int ans = 0;int main(){scanf("%d%d", &n, &m);for(int i = 1; i <= n; ++i){int tmp = 1;scanf("%d", num+i);for(int j = 1; j <= m; ++j)tmp *= num[i];num[i] = tmp;}for(int i = 1; i <= n; ++i){f[i] = num[i];for(int j = 1; j < i; ++j)if(f[j]+num[i] > f[i])f[i] = f[j]+num[i];}for(int i = 1; i <= n; ++i)if(f[i] > ans) ans = f[i];printf("%d\n", ans);return 0;}
0 0
- sgu163:Wise King
- sgu 163 Wise King
- sgu163
- sgu163
- sgu-163-Wise King (水到不忍直视)
- WISE
- WISE
- King
- King
- king
- King
- element-wise
- point-wise ranking Vs pair-wise ranking
- First day of wise
- Wise Installation 使用说明
- Wise Install打包问题
- Wise安装制作
- Min-wise independent permutations
- /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别
- C# 参考之上下文关键字get、set、value、partial、where和yield
- C语言——通过调用函数改变形参指针 改变实参指针问题
- C++中静态存储区与栈以及堆的区别详解
- Java简单的socket 通信
- sgu163:Wise King
- C# 参考之转换关键字:operator、explicit与implicit
- NSThread
- Mac上java究竟在哪里,本文彻底让你搞清楚!
- Latx学习
- 关于NSURLSession的上传和下载
- 集合框架中的list、set和map的浅析
- Android Volley完全解析
- 单列索引和多列索引