CodeForces.1174D.ArraySplitting.(后缀和数组 + 贪心)
2024-09-08 02:52:56
参考代码:
#include <cstdio>
#include <algorithm>
using namespace std; typedef long long ll;
const int maxn = + ;
int n, k;
ll ans = , value[maxn]; bool cmp(const ll &a, const ll &b) {
return a > b;
} int main() {
scanf("%d %d", &n, &k);
for(int i = ; i <= n; i ++) scanf("%I64d", &value[i]);
for(int i = n; i; i --) value[i] += value[i + ];//构造value后n项和的后缀和数组
sort(value + , value + n + , cmp);//对后n - 1项进行排序,因为第后n项和是必须要加的
for(int i = ; i <= k; i ++) ans += value[i];//选取其中最大的n - 1项和第一项即可,就可以实现将所选的数字加k次
printf("%I64d\n", ans);
return ;
}
最新文章
- js变量及其作用域
- Spring Cloud集成相关优质项目推荐
- [TimusOJ1057]Amount of Degrees
- 12、uwp 开发的零碎总结
- mongodb命令使用
- css按钮自适应
- 了解mongodb
- Tomcat开发技术之与HTTP服务器的集成
- SOA与基于CDIF的API的联动
- be 动词
- 增广拉格朗日乘子法(Augmented Lagrange Method)
- 洛谷 P1231 教辅的组成
- 操作mysql(import pymysql模块)
- C# Partial:分部方法和分部类
- 【原创】c# socket 粘包 其实。。。
- angularjs中的路由介绍详解 ui-route(转)
- FFT与一些冷门问题
- 无法解析的外部命令gethostname
- hdoj:2024
- SpringBoot(十四)-- 整合Swagger2