为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来。希望能对大家的成绩有所帮助。

今年的最大目标就是能为【一亿技术人】创造更高的价值。


资源限制

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s


C++


//动态规划做的
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 105
int n,m;
int w[N],sum[N],dp[N][N][N];
int ans=0x7f7f7f7f,tot=0,maxw=0;
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&w[i]);tot+=w[i];maxw=max(maxw,w[i]);sum[i]=sum[i-1]+w[i];}if(m==1){printf("0\n");return 0;}int max_sum=tot*2/(m-1);maxw=max(maxw,max_sum/2);for(int max_v=max_sum;max_v>=maxw;max_v--){memset(dp,0,sizeof(dp));dp[0][0][0]=max_v;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){for(int k=0;k<=j;k++){dp[i][j][k]=dp[i][j][k-1];for(int kk=k;kk>=0;kk--){if(sum[j]-sum[kk]<=max_v){dp[i][j][k]=max(dp[i][j][k],min(dp[i-1][k][kk],sum[j]-sum[kk]));if(i==m&&j==n)ans=min(ans,max_v-dp[i][j][k]);}else break;}}}}}printf("%d\n",ans);}

Java

import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) { new Main().run(); }int INF = 0x3F3F3F3F;void run() {InputReader in = new InputReader(System.in);int n = in.readInt(), m = in.readInt(), ans = INF;int[][][] dp = new int[m + 1][n + 1][n + 1];int[] S = new int[n + 1];for (int i = 1; i <= n; i++)S[i] = S[i - 1] + in.readInt();for (int i = 0; i <= m; i++)for (int j = 0; j <= n; j++)for (int k = 0; k <= j; k++) dp[i][j][k] = INF;dp[0][0][0] = 0;for (int min = S[n] * 2 / m; min > 0; min--) {for (int i = 1; i <= m; i++)for (int j = 1; j <= n; j++) {int trans2 = 0, trans3 = 0;for (int k = 1; k <= j; k++) {dp[i][j][k] = dp[i][j][k - 1];while (trans2 < k && S[j] - S[trans2 + 1] >= min &&max(dp[i - 1][trans2 + 1][trans2 + 1], S[j] - S[trans2 + 1]) <= max(dp[i - 1][trans2][trans2], S[j] - S[trans2])) trans2++;if (S[j] - S[trans2] >= min)dp[i][j][k] = min(dp[i][j][k], max(dp[i - 1][trans2][trans2], S[j] - S[trans2]));while (trans3 < k && S[j] - S[trans3 + 1] >= min &&max(dp[i - 1][k][trans3 + 1], S[j] - S[trans3 + 1]) <= max(dp[i - 1][k][trans3 + 1], S[j] - S[trans3])) trans3++;if (S[j] - S[trans3] >= min)dp[i][j][k] = min(dp[i][j][k], max(dp[i - 1][k][trans3], S[j] - S[trans3]));}}ans = min(ans, dp[m][n][n] - min);}System.out.println(ans);}int max(int arg1, int arg2) { return arg1 > arg2 ? arg1 : arg2; }int min(int arg1, int arg2) { return arg1 < arg2 ? arg1 : arg2; }class InputReader {BufferedReader reader;StringTokenizer token;InputReader(InputStream in) {this.reader = new BufferedReader(new InputStreamReader(in));}String read() {while (token == null || !token.hasMoreTokens()) {try {token = new StringTokenizer(reader.readLine());} catch (IOException e) {e.printStackTrace();}}return token.nextToken();}int readInt() { return Integer.parseInt(read()); }}
}

蓝桥杯官网 试题 PREV-274 历届真题 分果果【第十二届】【省赛】【研究生组】【C++】【Java】两种解法相关推荐

  1. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  2. 蓝桥杯官网 试题 PREV-240 历届真题 答疑【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  3. 蓝桥杯官网 试题 PREV-109 历届真题 扫地机器人【第十届】【省赛】【研究生组】【C++】【Java】【Python】三种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  4. 蓝桥杯官网 试题 PREV-265 历届真题 砝码称重【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  5. 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)

    题干: 问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆. 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但 ...

  6. 【蓝桥杯官网试题 - 历届试题】小朋友排队(逆序数,树状数组)

    题干: 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的程度.开始的时候,所有小朋友的不高兴程度都是0. 如果某 ...

  7. 【蓝桥杯官网试题 - 历届试题】发现环(dfs+并查集,或无向图tarjan判环,无向环,或拓扑排序)

    题干: 问题描述 小明的实验室有N台电脑,编号1~N.原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络.在树形网络上,任意两台电脑之间有唯一的路径相连. 不过在最近一次维护网络时,管理员 ...

  8. 【蓝桥杯官网试题 - 真题训练】生命之树(树形dp)

    题干: 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存 ...

  9. 【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)

    题干: 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. ...

  10. 【蓝桥杯官网试题 - 算法训练 】K好数(线性dp与优化)

    题干: 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.2 ...

最新文章

  1. leetcode 2. 两数相加
  2. 今天的由于他工作很忙的局域网聊天
  3. 质数的和与积(信息学奥赛一本通-T1405)
  4. Thinkphp3.2整合微信支付
  5. Ubuntu firefox 显示在运行无法打开,如何在终端关闭进程
  6. VC6保姆级图文教程
  7. 全球IP地址规则和分配
  8. Unity3D插件Gaia的基本使用方法
  9. 关于 jspx 文件的一些说明
  10. 项目质量管理的几种常规方法
  11. react插件,树状图(可自由定义子节点结构,大小,样式)
  12. 编译原理(3):词法分析
  13. 如何将页面换成黑白-滤镜
  14. 微信跳一跳辅助之JAVA版(最容易理解的算法)实现原理分析
  15. 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践
  16. CKP.CMP工作原理===
  17. 公有云弹性IP的实现原理及优势
  18. 力扣解题思路:位运算系列
  19. doe五步法_minitab中实验设计(doe).pdf
  20. 阿里java社招_阿里社招有多难?2020年最新阿里java面经分享

热门文章

  1. 计算机网络断开后怎么连接,电脑网络断开怎样重新连接
  2. 2021百度之星报名开启 特设“小星星”奖项鼓励少年AI人才
  3. cad道路里程桩号标注_甲级设计院CAD制图技巧与画法讲解! 超实用,值得你收藏~...
  4. html手机号带国家前缀,今天跟大家总结一下手机型号的前缀、后缀(...
  5. 数据库(mysql、oracle、sqlserver)单表sqlserver
  6. 基于51单片机病床呼叫系统proteus仿真设计(protues仿真+源码+报告)
  7. 王道计算机考研机试指南部分代码
  8. 干货:完全基于情感词典的文本情感分析
  9. Java实现提取拼音首字母
  10. 《图解深度学习》学习笔记(一)