AcWing 1068. 环形石子合并

AcWing 1068. 环形石子合并

题意:

n堆石头围成一个圈,然后将相邻两堆合并成新的一堆,得分为新的一堆的石头数
问最高得分合最低得分

题解:

很简单,区间dp的模板题
和这个题一样
状态转移方程:
dpmax[i][j] = max(dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1])
dpmin[i][j]=min(dp[i][k]+dp[k+1][j])+sum[j]-sum[i-1]
因为题目说的是环形,所以数组复制一倍
马上要java期末考试,所以用java练练

代码:

import java.io.*;
import java.util.*;class Main{static BufferedReader read = new BufferedReader(new InputStreamReader(System.in));static int N = 410, INF = 0X3f3f3f3f;static int[] a = new int[N], sum = new int[N];static int[][] dpMax = new int[N][N];static int[][] dpMin = new int[N][N];public static void main(String[] args) throws Exception{int n = Integer.valueOf(read.readLine());String[] ss = read.readLine().split(" ");for(int i = 1; i <= ss.length; i++){a[i] = Integer.valueOf(ss[i - 1]);a[i + n] = Integer.valueOf(ss[i - 1]);}for(int i = 1; i <= 2 * n; i++){sum[i] = sum[i - 1] + a[i];Arrays.fill(dpMax[i], -INF);Arrays.fill(dpMin[i],  INF);}for(int len = 1; len <= n; len++){for(int i = 1; i + len - 1 <= 2 * n; i++){int j = i + len - 1;if(len == 1) {dpMax[i][j] = dpMin[i][j] = 0;}else{for(int k = i; k < j; k++){dpMax[i][j] = Math.max(dpMax[i][j], dpMax[i][k] + dpMax[k + 1][j] + sum[j] - sum[i - 1]);dpMin[i][j] = Math.min(dpMin[i][j], dpMin[i][k] + dpMin[k + 1][j] + sum[j] - sum[i - 1]);}}}}int max = -INF, min = INF;for(int left = 1; left <= n; left++){max = Math.max(max, dpMax[left][left + n - 1]);min = Math.min(min, dpMin[left][left + n - 1]);}System.out.println(min);System.out.println(max);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.10模拟总结

文章目录前言题目解析随机减法&#xff08;calculate&#xff09;大图书馆&#xff08;bibliotheca&#xff09;子串选取 &#xff08;substr&#xff09;代码T1T2T3总结前言 200pts 4010060 rnk3 拿到牌勒嘿嘿嘿&#xff08;脑补流口水黄豆&#xff09; T3两个log想在ybt的机…

ABP VNext 微服务演示,项目状态和路线图

在ABP vNext上的第一个公告之后,我们对代码库进行了很多改进(GitHub存储库上的1100多次提交).我们已经创建了功能,示例,文档等等.在这篇文章中,我想告诉你一些新闻和项目的状态.ABP微服务演示解决方案ABP框架的主要目标之一是提供创建微服务解决方案的便利基础设施.我们一直在努…

加分二叉树

加分二叉树 题意&#xff1a; 给你一个数的中序表达式&#xff0c;然后一颗子树的分数左子树的分数*右子树的分数根的分数 给你所有点的分数&#xff0c;让你构造出分值最大的树&#xff0c;输出前序遍历 题解&#xff1a; 区间dp问题 设dp[i][j]表示中序遍历是w[i~j]的所有…

AtCoder ZONe Energy Programming Contest 题解

文章目录A - UFO InvasionB - Sign of FriendshipC - MAD TEAMD - Message from AliensE - SneakingF - Encounter and FarewellZONe Energy Programming ContestA - UFO Invasion 太简单了。 #include <cstdio> char ch[10] { Z, O, N, e }; char s[20];int main() {…

2.11模拟总结

前言 145&#xff08;175&#xff1f;&#xff09;pts 100450&#xff08;30&#xff1f;&#xff09; rnk11&#xff08;8&#xff1f;&#xff09; 之所以有括号是因为T3莫名其妙的TLE了&#xff1f; 考后我一模一样的码再交一遍30分就到手了… 应该不是我的问题吧&#xff…

[aspnetcore.apidoc]一款很不错的api文档生成工具

简单徐速一下为什么选用了aspnetcore.apidoc 而没有选用swagger最初我们也有在试用swagger&#xff0c;但总是有些感觉&#xff0c;感觉有点不满意&#xff0c;就但从api文档角度来说&#xff0c;从前后端文档沟通角度来讲apidoc的表现形式&#xff0c;要比swagger简单的多&…

【学习笔记】浅谈短小可爱的左偏树(可并堆)

文章目录左偏树左偏树的合并(merge)操作例题罗马游戏[Apio2012]dispatching[JLOI2015]城池攻占[Baltic2004]sequence左偏树 左偏树是一个堆&#xff0c;而且是一个可并堆&#xff0c;所以一定有权值的限制 以小根堆为例&#xff0c;那么必须满足节点权值小于左右儿子权值&…

2.12 模拟

文章目录前言题目解析染色计划&#xff08;color&#xff09;奇度边集&#xff08;edges&#xff09;猜拳游戏&#xff08;guess&#xff09;代码T1T2LCT整体二分总结前言 120pts 期望&#xff1a;4010020160 实际&#xff1a;406020120 rnk 9 我yue了。 怎么又是不可抗力性挂…

Acwing1069. 凸多边形的划分

Acwing1069. 凸多边形的划分 题意&#xff1a; 一个N个顶点的凸多边形&#xff0c;划分成N-2个互不相交的三角形&#xff0c;对于每个三角形&#xff0c;其三个顶点的权值相乘都可得到一个权值乘积&#xff0c;试求所有三角形的顶点权值乘积之和至少为多少。 题解&#xff1…

徐磊(Devops):一名写了十几年代码但还没写够的程序员

徐磊&#xff08;Devops 社区领袖&#xff09;【个人介绍】徐磊&#xff0c;微软MVP&#xff08;微软最有价值专家&#xff0c;大中华区域社区技术总监&#xff0c;Devops 社区领袖&#xff09;&#xff0c;从事过网管、技术支持、网络、软件开发等工作&#xff0c;一名写了十几…

加强版[BZOJ#3483] SGU505 Prefixes and suffixes(询问在线版)

文章目录descriptionsolutioncode#3483. SGU505 Prefixes and suffixes&#xff08;询问在线版&#xff09;description 给定&#x1d45b;个字符串&#xff0c;有&#x1d45a;个询问。 每个询问给出两个字符串&#x1d460;1, &#x1d460;2&#xff0c;问&#x1d45b;个字…

AcWing 320. 能量项链

AcWing 320. 能量项链 题意&#xff1a; 题解&#xff1a; 和环形石头合并基本一样 代码&#xff1a; #include<bits/stdc.h> #define debug(a,b) printf("%s %d\n",a,b); typedef long long ll; using namespace std;inline int read(){int s0,w1;char c…

ERP不规范,同事两行泪

最近的很多次对外交流&#xff0c;都聊到了ERP建设的话题&#xff0c;并且无一例外的不那么让人省心&#xff0c;回想我这么多年走过的ERP坑坑路&#xff0c;在这里也写下经验和总结&#xff0c;希望能给正在或者即将走上ERP建设路的企业一些思考和帮助。导读1、几个瞎眼而普遍…

2.13模拟总结

文章目录前言题目解析最小划分&#xff08;divide&#xff09;进制路径&#xff08;base&#xff09;欧拉欧拉&#xff08;eular&#xff09;代码T1T2T3总结前言 day9 170pts 期望&#xff1a;10010020220 实际&#xff1a;701000170 rnk7 挂的分有点多qwq 分数要是得满就能拿…

Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解

文章目录A - Health M DeathB - Many OrangesC - CommaD - Shipping CenterE - Lucky 7 BattleF - Coprime PresentPanasonic Programming Contest (AtCoder Beginner Contest 195)A - Health M Death 判断倍数。 #include <cstdio> int main() {int M, H;scanf( "…

长沙.NET社区之光

奈何万事开头难迎着改革开放四十年带来的春风&#xff0c;长沙的互联网生态环境以唐胡子俱乐部为首的一众互联网社群将长沙互联网的环境推上了一个新的台阶。年底&#xff0c;我与有幸一起共事的溪源兄&#xff0c;下班后一起闲聊&#xff0c;觉着长沙的.NET的生态环境亟待改善…

P3205 [HNOI2010]合唱队

P3205 [HNOI2010]合唱队 题意&#xff1a; 有n个数&#xff0c;然后插入队伍中&#xff0c;如果队列当前为空&#xff0c;则直接插入&#xff0c;然后每次插入和上一次插入的比较&#xff0c;如果大于&#xff0c;插入当前队列的最右侧&#xff0c;如果小于&#xff0c;插入当…

2.14模拟总结

前言 节日快乐&#xff01; (逃) day10 50pts 期望&#xff1a;10302060 实际&#xff1a;0302050 rnk11 彻彻底底的摆烂局了。 但是rnk竟然没有太掉&#xff0c;所以我应该并不孤独… 和KH并排坐在机房里&#xff0c;各自看着电脑&#xff0c;痴痴想着各自的心事&#xff0c;…

KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)题解

文章目录A - CenturyB - 200th ABC-200C - Ringos Favorite Numbers 2D - Happy Birthday! 2E - Patisserie ABC 2F - Minflip SummationKYOCERA Programming Contest 2021&#xff08;AtCoder Beginner Contest 200&#xff09; A - Century 简单的除以200200200向上取整 B…

高级进阶:Azure DevOps搞定.NET Core编译版本号自增

点击上方蓝字关注“汪宇杰博客”熟悉.NET Framework的人知道&#xff0c;我们可以通过指定AssemblyVersion为10.0.*来让编译器自增版本号。但是.NET Core和.NET Standard不行。即使有MSBump这样的开源项目&#xff0c;也有一定的缺陷。一般这样的需求会出现在CI/CD服务器上。我…