You Are the One HDU - 4283(区间DP)

告别Mac自带终端:iTerm2 + Oh My Zsh 保姆级配置指南(含国内镜像源) 本文提供了一份详细的Mac终端优化指南,涵盖iTerm2、Oh My Zsh和Homebrew的配置流程,特别针对国内用户提供镜像源解决方案。通过安装现代化工具链和优化配置,帮助开发者打造高效、美观的终端工作环境,提升日常开发效率。 阅读详情

You Are the One HDU - 4283

The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot of boys and girls. Now there are n boys enrolling in. At the beginning, the n boys stand in a row and go to the stage one by one. However, the director suddenly knows that very boy has a value of diaosi D, if the boy is k-th one go to the stage, the unhappiness of him will be (k-1)*D, because he has to wait for (k-1) people. Luckily, there is a dark room in the Small hall, so the director can put the boy into the dark room temporarily and let the boys behind his go to stage before him. For the dark room is very narrow, the boy who first get into dark room has to leave last. The director wants to change the order of boys by the dark room, so the summary of unhappiness will be least. Can you help him?

Input
  The first line contains a single integer T, the number of test cases. For each case, the first line is n (0 < n <= 100)
  The next n line are n integer D1-Dn means the value of diaosi of boys (0 <= Di <= 100)
Output
  For each test case, output the least summary of unhappiness .
Sample Input

2
  
5
1
2
3
4
5

5
5
4
3
2
2

Sample Output

Case #1: 20
Case #2: 24
题意:

有一群屌丝,每个屌丝有个屌丝值,如果他第K个上场,屌丝值就为a[i]*(k-1),因为前面有k-1个人在他前面上台,可以把几个人拉进小黑屋来调整,可以把小黑屋当成栈因为先进去的人最后才能出来,使得最后总屌丝值最小

分析:

区间DP

定义dp[i][j]dp[i][j]表示原序列区间[i,j][i,j]的人的最小屌丝值

这样我们枚举一个中间变量k,设i在区间[i,j]中是第k个上场的

这样区间分成了两部分

dp[i+1][i+k−1](k−1个人在i之前),dp[i+k][j](之后的人)dp[i+1][i+k−1](k−1个人在i之前),dp[i+k][j](之后的人)

也就是让[i,i+k−1][i,i+k−1]这些人进入小黑屋,i先进的,那么他前面将有k-1个人,他是第k个上场的,之后再让后面的[i+k,j][i+k,j]这些人上场

这样很明显i等待了k-1个人屌丝值增长为(k−1)×a[i](k−1)×a[i],而[i+k,j][i+k,j]这些人则等待了k个人,屌丝值增长为k×(这些人的屌丝值之和)k×(这些人的屌丝值之和)

因此状态转移公式为:

dp[i][j]=min(dp[i][j],dp[i+1][i+k−1]+dp[i+k][j]+k×(sum[j]−sum[i+k−1])+a[i]×(k−1))dp[i][j]=min(dp[i][j],dp[i+1][i+k−1]+dp[i+k][j]+k×(sum[j]−sum[i+k−1])+a[i]×(k−1))

sum[]记录了每个人屌丝值的前缀和

code:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
int n,a[105],sum[105],dp[105][105];

int main(){
    int t,cas = 0;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        memset(sum,0,sizeof(sum));
        for(int i = 1; i <= n; i++){
            scanf("%d",&a[i]);
            sum[i] = sum[i-1] + a[i];
        }
        memset(dp,0,sizeof(dp));
        for(int i = 1; i <= n; i++){
            for(int j = i + 1; j <= n; j++){
                dp[i][j] = INF;
            }
        }
        //注意初始化,dp[i][i]=0,其他长度的为INF
        for(int l = 1; l < n; l++){
            for(int i = 1; i + l <= n; i++){
                int j = i + l;
                for(int k = 1; k <= j - i + 1; k++){
                    dp[i][j] = min(dp[i][j],dp[i+1][i+k-1]+dp[i+k][j]+k*(sum[j]-sum[i+k-1])+a[i]*(k-1));
                }
            }
        }
        printf("Case #%d: %d\n",++cas,dp[1][n]);
    }
    return 0;
}
java实现mavlink协议解析与封包上传数据,实现mavlink数据交互,附带代码、详解 本篇文章介绍了使用java来进行mavlink协议解析,封包与解包的过程,并附带源码供大家使用。MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)或云端服务器之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试。 阅读详情

相关推荐

关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer

关于LIO-SAM编译时出现错误: 下载LIO-SAM代码 进入LIO-SAM文件夹,通过以下代码编译: mkdir build cd build cmake .. make 报错: /usr/bin/ld: 找不到 -lBoost::timer collect2: error: ld returned 1 exit status CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/li

wwtx的博客 3648

C - You Are the One(区间dp)

The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot o...

默的博客 281

Codex API 直接集成指南:告别中转代理,构建稳定高效的 AI 应用

在 AI 应用开发中,API 集成是连接模型能力与业务逻辑的核心环节。其基本原理是通过 HTTP 协议,按照服务提供商定义的规范发送请求并解析响应,实现远程调用。标准化的 API 设计确保了跨平台和跨语言的互操作性,其技术价值在于提供了稳定、可控且可扩展的服务接入方式,是构建企业级智能应用的基础。在实际应用场景中,开发者常需集成如 Codex 这类聚合了多种大语言模型的平台,以调用诸如 DeepSeek 等先进模型。然而,部分开发者仍依赖过时的第三方中转代理工具,这不仅引入了单点故障和版本锁定的风险,还可能

weixin_28224217的博客 338

HUD 4283 You Are the One(预处理+前缀和推出递推式)

题目链接:https://vjudge.net/contest/396083#problem/F The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot of boys

zaiyang遇见 298

最新Linux CSI Tools安装教程(两台主机,一发一收)(监控模式)

无线感知之CSI Tools工具安装,最新在监控模式下采集CSI数据,

h1998040218的博客 3028

引入 CloudWeGo 后飞书管理后台平台化改造的演进史

飞书管理后台是飞书套件专为企业管理员提供的信息管理平台,它通过引入 Kitex 泛化调用对飞书管理后台进行平台化改造,成为了企业统一数字化管理平台。本文将从三个方面为大家讲解 Kitex 泛化调用在飞书管理后台平台化改造过程中的落地实践。...

weixin_44186218的博客 1762

HDU 4283:You Are the One(区间DP)

The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot of boys an

并非所有流浪者都迷失了自我 331

DeepSeek与豆包无缝对接:5分钟搞定智能周报自动化(附完整代码)

本文详细介绍了如何利用DeepSeek与豆包API,快速搭建一个智能周报自动化系统。通过整合豆包平台的工作流数据,并调用DeepSeek大模型进行深度分析与内容生成,该系统能在5分钟内自动抓取、分析多源信息,并生成结构清晰、富有洞察力的团队周报,显著提升工作效率。

weixin_29029995的博客 491

You Are the One(HDU 4283)

题意: 给出n个数,每个数字需要都需要进栈然后出栈。 第i个数出栈需要的花费是(i-1)*第i个出栈的权值 求所有数出栈需要的最小花费是多少? 分析: 栈能干什么呢,能把一个数字放进去然后过好久再放出来,但是把这个数字压进去的话压在更底下的数字就出不来了。 看起来挺复杂的= = 但是这题用不到这些东西 虽然说是栈,但是把每次清空栈之间看做一段区间,这些区间可以发现是相互独立存在...

Umbrella__的博客 354

论文阅读:arxiv 2023 EduChat: A Large-Scale Language Model-based Chatbot System for Intelligent Education

EduChat是一个基于大规模语言模型(LLM)的教育领域聊天机器人系统,旨在为教师、学生和家长提供个性化、公平且富有同理心的智能教育服务。该系统通过在教育语料库上进行预训练和特定任务微调,强化了开放式问答、作文评估、苏格拉底式教学和情感支持等教育功能。为解决领域知识不足和知识更新问题,EduChat采用了检索增强技术,并融入心理学和教育学理论。该项目已开源,提供代码、数据和模型参数,推动LLM在智能教育中的应用发展。

CSPhD-winston的博客 1039

微信小程序报错:“errno“:600001,“errMsg“:“uploadFile:fail errcode:-105 cronet_error_code:-105 error_msg:net::

uploadFile:fail errcode:-105 cronet_error_code:-105 error_msg:net::ERR_NAME_NOT_RESOLVED,uniApp微信小程序使用uni.uploadFile出现报错,微信小程序如何解决wx.uploadFile报错,如何解决这个问题,微信小程序真机报错,微信小程序报错"errno":600001,"errMsg":"uploadFile:fail errcode:-105 cronet_error_code:-105 error_m

✅ 精选推荐文章 3825

HDU 4283 You Are the One (区间DP,记忆化搜索)

题目链接题目的意思是:有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋(栈),可以一定程度上调整上场程序 学习一下区间dp的问题 dp[i][j]: 表示区间[i,j]的不开心值最小。 当前只考虑这一段区间里面的人的话,也就是这j-i+1个人出栈的名次是[1,j-i+1], 那么假设第i个人是第k个出栈的话,那么[i+1,i+k-1]的

qwesde 472

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Hdu 4283 You Are the One (DP_区间DP)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4283 题目大意:给定一个序列,序列内的人有屌丝值Di,是第然后将这个序列进栈,第i个人如果是第k个出栈,那么最后的屌丝总值增加Di * (k-1), 求一个出栈序列使得总屌丝值最小。 解题思路:2012年天津网赛的1006题,当时不会做,因为一直想着记录栈里面

4790

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

You Are the One HDU - 4283 区间dp

题解 题目大意,一队人排队上台表演,每个人有个值a[i],他第k个上场就会有a[i]*(k-1)的不愉快度,现在有个栈可以调整上台顺序,对于每个人可以选择进栈或者直接上台,在栈中的人可以随时上台,问不愉快度的最小总和 区间dp求解,d[i][j]表示区间[i, j]第i个前面没有人的情况下的最小代价,也就是只有区间[i, j]这些人任意安排顺序上场的最小代价 对于每个区间考虑将第一个人进栈,等后面...

CaprYang的博客 769

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU4283 You Are the One —— 区间DP

题目链接:https://vjudge.net/problem/HDU-4283 You Are the One Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4667Accepted Submission(s...

alince20008的博客 162

HDU 4283 You Are the One(区间dp)

 题意:有n个人排成一排要上台表演,每个人有一个屌丝值pi。第i个上台表演的人,他的不满意度为(i-1)*pi。 现在有一个类似于栈的黑屋子,你可以让某些人进入这个黑屋子。这些人要按照排的顺序来,那么对于排在最前面的人, 就有两个选择: (1)让他直接上台表演; (2)让他暂时进黑屋子。 现在请你选择一个合理的调度顺序,使得最后的总不满意度最小? 训练的时候想的是贪心,将后来想了

GODSPEED 2119

区间dp -- You Are the One HDU - 4283

You Are the One HDU - 4283 题意: 由T个测试样例,每个样例有n(1 <= n <= 100)个数d[i] (0 <= d[i] <= 100),如果的d[i]是第k个算贡献,则的d[i]的贡献是(k - 1)* d[i],先在给你一个栈,你可以任意时间把d[i]放入栈中或从栈中取出,以此来控制算贡献的顺序。求最小贡献。 思路: f[i][j]表示把区间 [i, j] 翻转过来的贡献和,栈的作用就是把进栈的区间 [i, j]翻转顺序。 dp[i][j]表

dajiangyou123456的博客 170

hdu 4283 You Are the One(区间dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4283 题意:有队屌丝,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋(其实就是个堆栈) 可以先把人放置一下改变一下上场顺序,最后要得到总的不开心值最小。 数据比较小可以随意的套循环,简单的区间dp模版套3层for 设dp[i][j]表示从...

awow80285的博客 138

hdu4283 You Are the One 区间DP

为了往后的同学,我还是决定把我的写出来,写详细一点,让后来者不那么辛苦。并以此开启我的第一篇博文,所以还有欠缺请多海涵 TvT。还有我在优快云上找题解的时候,不是看不懂(因为写的不详细)就是要钱。(我寻思这也不是什么世纪难题,动不动要钱是?首先题目的题意模糊不清不说,最后我发现给的样例都是错的。后来兜兜转转找了找,自己想了想,还是勉强解决了。这题我真的绷不住了。

weixin_62388497的博客 494

HDU4283.You Are the One(区间DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4283 题意:给出n个人,第k个上场的人有(K-1)*D的不满度,有一个小黑屋可以用来放人(类似于堆栈,先进小黑屋的后出)来调整上台顺序,问最小的不满度。 解题思路:区间DP 求出前i个值的总和 sum[i]=d1+d2+…+di dp[i][j]表示第i个人到第j个人之间的最小不满意度(只考虑i到j这些人) 具体解释看注释就可以 for(int k=1;k<=n-1;k++){ for(int i=

Buyi的博客 227

HDU-4283 You Are the One【区间dp】

You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6247 Accepted Submission(s): 3060 Problem Description The TV shows such as Y...

weixin_43895356的博客 214

HDU4283 You Are the One 区间DP

HDU4283 You Are the One 区间DP

qq_44919369的博客 158

HDU - 4283You Are the One 区间dp

题目链接: https://vjudge.net/problem/HDU-4283 The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is h...

lt的博客 212

HDU 4283 You Are the One(12年天津 区间DP)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove 题目:有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋(其实就是个堆栈),可以一定程度上调整上场程序 http://acm.hdu.edu.cn/showproblem.

窝不是爱酱,喵~~~~ 8972

HDU 4283 You Are the One 区间dp

题意: 有一列人, 他们每个人有屌丝值, 每个人根据上场顺序会有不满意度, 是在他之前上场人数乘屌丝值. 现在有一个栈可以暂时人, 问最后所有人都上场最少会产生多少不满意度. 思路: dp[i][j]表示从第i到第j个人最少产生的不满意度. 现在假设i到j已经是最优区间, 考虑i前面的人i-1: 这个人可能Ⅰ直接上场, 或者Ⅱ进栈之后在j之后上场. 那么dp[i-1][j]就会由两个值进...

swqeaaa的博客 184
上一篇: Light It Up Codeforces 1000B(思维+贪心)
下一篇: TOYS POJ - 2318(计算几何判断点和直线位置+二分)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值