北京师范大学第十四届ACM决赛- F Training Plan
来源:互联网 发布:网络继续教育学院 编辑:程序博客网 时间:2024/05/09 14:43
题意:小Q同学为了准备今年的ICPC Regional,计划在m天之内刷掉n道题,每道题有一个难度值,其中第i道题的难度值为a[i]。
然而处于半颓废状态中的小Q同学不希望在同一天中做难度差距悬殊的题目,定义第i天中刷的题的难度的最大值减最小值为d[i](如果第i天没有刷题,则d[i]=0),那么整个计划的难度为。
然而处于半颓废状态中的小Q同学不希望在同一天中做难度差距悬殊的题目,定义第i天中刷的题的难度的最大值减最小值为d[i](如果第i天没有刷题,则d[i]=0),那么整个计划的难度为。
小Q同学可以按照任意的顺序刷题,并且一天中可以刷任意多道题,但是每道题只需要做一次,现在小Q同学想知道完成这个计划的总难度的最小值是多少。
思路:暴力三重for循环dp所有可能结果。
#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>#define siz 505#define LL long longusing namespace std;int n,m;int gp[siz];LL dp[siz][siz];void solve(){ LL x; for(int i=1; i<=n; i++) { x = gp[i] - gp[1]; dp[1][i] = x * x; } for(int i=2; i<=m; i++) { for(int j=1; j<=n; j++) { dp[i][j] = 1ll*(gp[j] - gp[1]) * (gp[j] - gp[1]); for(int k=2; k<=j; k++) { x = gp[j] - gp[k]; dp[i][j] = min(dp[i-1][k-1] + x * x,dp[i][j]); } } } printf("%lld\n",dp[m][n]);}int main(){ int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) { scanf("%d",&gp[i]); } if(n<=m) { printf("%d\n",0); continue; } sort(gp+1,gp+n+1); solve(); }}
阅读全文
0 0
- 北京师范大学第十四届ACM决赛- F Training Plan
- 北京师范大学第十四届ACM决赛- F Training Plan dp
- 北京师范大学第十四届ACM决赛- K ACM Battle 爆搜
- 北京师范大学第十四届ACM决赛- BSquared Permutation 树状数组
- 北京师范大学第十四届ACM决赛- B Squared Permutation 三分
- 北京师范大学第十四届ACM决赛 I Cactus Exploration 菊花图,仙人掌树
- 【BNUOJ】【第十四届北京师范大学程序设计竞赛决赛】D. Air Hockey
- 第十四届北京师范大学程序设计竞赛决赛训练总结2017/5/7
- 第十二届北京师范大学程序设计竞赛决赛 F.小组论【状压Dp】
- 北京师范大学第十五届ACM决赛 C题 Captcha Cracker 【水题模拟】
- 第十四届北京师范大学程序设计竞赛 [6/11]
- F. Training Plan--类似区间dp
- 西南交通大学第十三届ACM决赛 F 题 【思维 + 前缀】
- 杨辉三角形//第八届北京师范大学程序设计竞赛决赛
- 第十五届北京师范大学程序设计竞赛决赛(网络同步赛)
- 第十五届北京师范大学程序设计竞赛决赛(网络同步赛)
- 第十五届北京师范大学程序设计竞赛决赛 A.Another Server【思维】
- 第十五届北京师范大学程序设计竞赛决赛 D. Disdain Chain【思维】
- IE兼容问题解决
- noip题目复习
- 操作系统面试题汇总(持续更新)
- 购物车
- 机器学习入门笔记(十一)----推荐系统
- 北京师范大学第十四届ACM决赛- F Training Plan
- Codeforces Round #442 (Div. 2) 解题报告
- angular利用双向数据绑定改变样式
- java面试题收集
- HttpURLConnection 和GSON解析
- sql语句中的连接字符
- 前端:Import in body of module; reorder to top import/first
- Opencv之获取边缘和画轮廓
- 从键盘输入一个大写字母,转换成小写字母