BZOJ 1010: [HNOI2008]玩具装箱toy

操作系统期末大题类型题解 额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量 阅读详情

题意:
Description

  P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压
缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件玩具经过
压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容
器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一
个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<=K<=j 制作容器的费用与容器的长度有关,根据教授研究,
如果容器长度为x,其制作费用为(X-L)^2.其中L是一个常量。P教授不关心容器的数目,他可以制作出任意长度的容
器,甚至超过L。但他希望费用最小.
Input

  第一行输入两个整数N,L.接下来N行输入Ci.1<=N<=50000,1<=L,Ci<=10^7
Output

  输出最小费用
Sample Input
5 4

3

4

2

1

4
Sample Output
1

解题方法:

dp[i]=min(dp[j]+(sum[i]−sum[j]+i−j−1−L)2)(j<i)。

令f[i]=sum[i]+i,c=1+l,则dp[i]=min(dp[j]+(f[i]−f[j]−c)2)

这个形式的式子就是典型的斜率优化了,我们把式子展开之后并且移项可以得到:

dp[k]+f[i]2−2∗f[i]∗(f[k]+c)+(f[k]+c)2<=dp[j]+f[i]2−2∗f[i]∗(f[j]+c)+(f[j]+c)2

约简得:

dp[k]−2∗f[i]∗(f[k]+c)+(f[k]+c)2<=dp[j]−2∗f[i]∗(f[j]+c)+(f[j]+c)2

即(dp[k]+(f[k]+c)2−dp[j]−(f[j]+c)2)/2∗(f[k]−f[j])<=f[i]

f[i]是单调递增的,我们使用队列维护一个下凸壳,每次取出队头作为决策。

加入决策i时,令队尾为que[tail],前一个为que[tail-1]

满足斜率(que[tail],i)<斜率(q[tail-1],q[tail])时,显然队尾是无效的,将其弹出。

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N = 50005;
#define rep(i, a, b) for(int i = a; i <= b; i++)
int n, L, head, tail, c[N], que[N];
long long sum[N], dp[N], C;
long long sqr(long long x){
    return x * x;
}
double getxl(int j, int k){
    return (dp[k] - dp[j] + sqr(sum[k] + C) - sqr(sum[j] + C)) / (2.0 * (sum[k] - sum[j]));
}
int main(){
    while(scanf("%d%d", &n, &L) != EOF){
        C = L + 1;
        rep(i, 1, n) scanf("%d", &c[i]);
        sum[0] = 0;
        rep(i, 1, n) sum[i] = sum[i-1] + c[i];
        rep(i, 1, n) sum[i] = sum[i] + i;
        head =1;
        tail = 0;
        que[++tail] = 0;
        rep(i, 1, n){
            while(head < tail && getxl(que[head], que[head+1]) <= sum[i]) head++;
            dp[i] = dp[que[head]] + sqr(sum[i] - sum[que[head]] - C);
            while(head < tail && getxl(que[tail], i) <= getxl(que[tail-1], que[tail])) tail--;
            que[++tail] = i;
        }
        printf("%lld\n", dp[n]);
    }
    return 0;
}
YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景 摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方 阅读详情

相关推荐

深度学习基于Resnet18的图像多分类--训练自己的数据集(超详细 含源码)

深度学习基于Resnet18的图像多分类--训练自己的数据集(超详细 含源码)

她是不会无条件的!! 2万+

bzoj1010: [HNOI2008]玩具装箱toy

决策单调性 或 斜率优化

ACoder 844

cellranger安装以及使用

接受cellranger count的输出数据,将同一组的不同测序样本的表达矩阵整合在一起,比如tumor组原来有4个样本,PBMC组有两个样本,现在可以使用aggr生成最后的tumor和PBMC两个矩阵,并且进行标准化去掉测序深度的影响。但是由于病毒基因组太小了,且注释结果只有CDS没有exon,所以曲线救国,将CDS整体替换为exon,也不进行过滤了,直接下一步。虽然安装完毕,但是现在要运行cellranger的话需要在终端输入cellranger的整个路径。自动执行这个命令,需要将“

m0_59974475的博客 9391

BZOJ1010: [HNOI2008]玩具装箱toy 斜率优化DP

1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 9342  Solved: 3743 [Submit][Status][Discuss] Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可

Oakley 673

针对中文CLIP模型训练失效的解决方案记录

解决了中文CLIP模型无法正确训练的问题

weixin_45906434的博客 1619

YOLOv8模型INT8量化实战:解决sigmoid输出归零的坑(附代码修改)

本文详细介绍了YOLOv8模型INT8量化过程中遇到的sigmoid输出归零问题及其解决方案。通过修改模型导出代码、优化ONNX量化流程,并提供完整的部署优化技巧,帮助开发者在边缘计算设备上实现高效的模型推理。文章还包含量化效果验证和常见问题排查方法,助力开发者快速解决实际部署中的难题。

vvv99的博客 252

BZOJ 1010: [HNOI2008]玩具装箱toy【斜率优化】

1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第...

aiweiluan5095的博客 145

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 378

BZOJ 1010: [HNOI2008]玩具装箱toy——斜率优化

BZOJ 1010 第二道斜率优化,对斜率优化有了新的理解。开心(大雾 这题的题面其实就是在说  斜率优化!斜率优化!斜率优化! 好吧就是道裸题 我们考虑更新f[i]时选择的节点 如果k比j更优 则有: f[j]+(j-i+sum[i]-sum[j]-L)^2 f[j]+(sum[i]-sum[j])^2-2*(i-j+L)*(sum

来自Fop_zz的辣鸡题解或教程 1008

python实现下载和离线安装包环境

导出当前电脑python安装的所有包列表requirement.txt。

m0_60352504的博客 1676

`tokenizer.decode` 出现乱码或异常输出,怎么处理

摘要: 在使用Hugging Face Transformers库时,tokenizer.decode出现乱码或异常输出的解决方案包括:1)确保模型与分词器严格匹配,加载时使用trust_remote_code=True;2)谨慎处理特殊token,先保留所有token再针对性清理;3)校验模型输出token的维度和数值是否合法;4)通过convert_tokens_to_string替代解码;5)检查生成配置如max_new_tokens等参数。核心思路是确保模型与分词器逻辑对齐、输出token合法,必要

ZhangJiqun&191cm&85kg 583

bzoj 1010: [HNOI2008] 玩具装箱 toy [斜率优化dp] [动态规划]

1010: [HNOI2008]玩具装箱toyTime Limit: 1 Sec Memory Limit: 162 MB Submit: 9202 Solved: 3678Description  P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件

C'est la vie. 1661

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 695

bzoj-1010: [HNOI2008]玩具装箱toy

同洛谷-P3195 [HNOI2008]玩具装箱TOY

xu0_zy的博客 350

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

bzoj 1010: [HNOI2008]玩具装箱toy

斜率优化还是用浮点数的写法好写啊,以后就这么写了,还不会错(因为斜率相等的情况对于斜率优化是无所谓的,所以说浮点数误差不会导致错误) #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 50005; int C[maxn],q[maxn]; LL sum[maxn]...

ehdhg13455的博客 185

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BZOJ1010: [HNOI2008]玩具装箱toy

BZOJ1010: [HNOI2008]玩具装箱toy   Time Limit: 1 Sec   Memory Limit: 162 MB Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为C...

weixin_30408675的博客 98

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: BZOJ 1452 [JSOI2009] Count
下一篇: BZOJ 1002: [FJOI2007]轮状病毒
just_sort
博客等级 码龄11年 2356粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值