HDU - 2829 Lawrence

YOLO11 Backbone改进:二值化、三值化权重实战(一) 本文介绍了二值化/三值化神经网络的基本概念、优势挑战及应用场景。二值化网络将权重限制为±1,三值化则增加0值,显著减少模型存储需求和计算复杂度。虽然存在精度下降等挑战,但通过技术改进已能在移动设备、自动驾驶等领域应用。文章分析了YOLO11中适合量化的层,并详细阐述了二值化权重原理及Straight-Through Estimator等关键技术。二值化/三值化神经网络为资源受限设备提供了高效的深度学习解决方案。 阅读详情

题目:将一个序列分成m+1段,每段的价值定义为任意两个数的乘积之和,求总的最小价值

思路:

cost[i][j]表示i到j成为一段的价值

设dp[i][j]表示前j个数分成i段的最小价值

dp[i][j]=min{dp[i-1][k]+cost[k+1][j]}

cost[1][i]=cost[1][k]+cost[k+1][i]+sum[k]*(sum[i]-sum[k])

将cost[k+1][i]代入上面的式子,得

dp[i][j]=min{dp[i-1][k]+cost[1][j]-cost[1][k]-sum[k]*(sum[j]-sum[k])}

然后斜率优化即可

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
//0x3f3f3f3f

const int maxn=1e3+5;
int arr[maxn],sum[maxn],cost[maxn];
int dp[maxn][maxn];
int q[maxn];
int head,tail,n,m;
int getdp(int i,int j,int k){
    return dp[i-1][k]+cost[j]-cost[k]-sum[k]*(sum[j]-sum[k]);
}
int gety(int i,int k,int j){//yj-yk
    return dp[i-1][j]-cost[j]+sum[j]*sum[j]-(dp[i-1][k]-cost[k]+sum[k]*sum[k]);
}
int getx(int k,int j){//xj-xk
    return sum[j]-sum[k];
}
int main(){

//    freopen("D:\\input.txt","r",stdin);
//    freopen("D:\\output.txt","w",stdout);
    while(~scanf("%d%d",&n,&m)){
        if(n==0&&m==0)
            break;
        sum[0]=0;
        for(int i=1;i<=n;i++){
            scanf("%d",&arr[i]);
            sum[i]=sum[i-1]+arr[i];
            cost[i]=cost[i-1]+sum[i-1]*arr[i];
        }
        for(int i=1;i<=n;i++)
            dp[1][i]=cost[i];
        m++;
        for(int i=2;i<=m;i++){
            head=0;
            tail=-1;
            q[++tail]=i-1;
            for(int j=i;j<=n;j++){
                while(head<tail&&gety(i,q[head],q[head+1])<=sum[j]*getx(q[head],q[head+1]))
                    head++;
                dp[i][j]=getdp(i,j,q[head]);
                while(head<tail&&gety(i,q[tail-1],q[tail])*getx(q[tail],j)>=gety(i,q[tail],j)*getx(q[tail-1],q[tail]))
                    tail--;
                q[++tail]=j;
            }
        }
        printf("%d\n",dp[m][n]);
    }
    return 0;
}


Coze 打通飞书多维表格,实现数据增删改查操作实战详解 基于Coze 打通飞书多维表实现数据录入系统实战详解 阅读详情

相关推荐

玄机-Linux权限维持-后门

玄机-Linux权限维持-后门

m0_46439803的博客 763

HDU 2829 (二维斜率优化)

题意 给你长度为n的序列,可以切m刀将序列切成m+1个子段。每个子段的价值为子段中任意两个数的乘积的总和,让总价值最小。 思路 定义数组s[i]=∑a[i]s[i]=\sum a[i]s[i]=∑a[i],数组e[i]=∑a[i]2e[i]=\sum a[i]^2e[i]=∑a[i]2。 定义状态f[i][k]f[i][k]f[i][k]代表前i个数,且k刀的最小价值。可以这样转移 f[i][k]...

No cost too great! 304

Qt6安装保姆级教程:从国内镜像下载到配置避坑指南(附清华/中科大源)

本文提供详细的Qt6安装与配置指南,重点介绍如何利用清华大学、中国科学技术大学等国内镜像源解决下载速度慢的问题。内容涵盖在线安装器获取、组件选择策略、环境变量配置以及常见编译与部署问题的排查方法,旨在帮助国内开发者高效、顺畅地完成Qt6开发环境搭建。

weixin_29281915的博客 633

HDU-2829 Lawrence 【斜率优化DP】【四边形不等式优化】

题目链接 题意 背景故事大概是说一战时一个英国间谍Lawrence要指挥突击队去炸毁奥斯曼帝国的一些铁轨。铁轨上有n个火车站,按线性排列,每个火车站上有一个权值,最后整个铁路的价值就是每一段联通铁路段上的火车站权值两两相乘的和加起来(联通段上只有一个车站就是0)。Lawrence有m次炸毁两个车站之间铁路的机会,求Lawrence最终可以使得这段铁路价值变成的...

babao9492的博客 223

记录:MCGS和正弦变频器通讯

触摸屏实现对变频器:启动、停止、频率设定、频率读取、电压读取、电流读取。通讯方式Modbus RTU。

m0_61837027的博客 1024

【位运算进阶之----右移(>>)】

😄嘻嘻,朋友们,大家好!昨天我们学习了左移,今天我们来谈谈右移>>。⭐️简单来说,,也就是去掉一个数的二进制表达的末位,右移一位就去掉一位,右移两位就去掉两位。下面就让我们来详细看看吧!

weixin_73453526的博客 8930

HDU--2829--Lawrence--斜率优化做法

嗯,我是看别人的题解做,复述一下思路有助于强化记忆(* ̄m ̄) 首先搞一个前缀和数组 sum[i] 你应该知道这是干嘛的, 然后就是一个关键的 w 数组,w[i] 表示前i个数两两相乘的和,这是根据题意来的。 然后咧,状态转移方程就是这样滴: dp[k][i] = min{dp[k-1][j]+val(j+1,i)|0<=j<i} val(j+1,i)表示[j+1,i]区间内的数字两两相乘

WoniuGe 688

英飞凌IGBT驱动芯片2ED020I12F2去饱和电路设计总结整理收集

记录下英飞凌IGBT驱动芯片限流电阻阻值设计

nizhenyuchina的博客 5994

hdu 2829 Lawrence

http://acm.hdu.edu.cn/showproblem.php?pid=2829 最近在看斜率优化的dp,早都该学习了,一直拖到现在才学习……其实单调队列+斜率的DP只要推出X,Y,还有斜率之后,差不多就是模板题了. 这个题目我推的公式和网上大多不太一样,观察一下 (a+b+c)^2  - (a*a + b*b +c*c) = 2*(a*b + b*c + a*c) 那么

态度决定高度 602

十分钟搞定! DeepSeek本地部署详细指南!

保姆级教程,三步搞定deepseek本地部署,不求人!

一个喜欢诗和远方的程序媛 4345

【Java基础知识 1】Java入门级概述

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 16万+

HDU - 2829(斜率优化DP)

题解:用f[i]表示a[1]^2+a[2]^2+...a[i]^2,sum[i] = a[1]+a[2]+...a[i];dp[i][j] = min(dp[i][j],dp[i-1][a]+((sum[j]-sum[a])*(sum[j]-sum[a])-f[j]+f[a])/2)); 然后一个一个试的话是1e9会超时可以用斜率换算一下就是(2*dp[j][b]-2*dp[j][a]+sum[

Soul 609

AI智能体丨使用Coze一键生成中式养生视频,39 条作品涨粉 37.9 万!(附保姆级教程)

本文介绍如何利用扣子(Coze)AI智能体工作流高效制作中式养生短视频。该方案通过AI自动生成养生文案、古风插画素材、语音合成和视频剪辑,将传统制作流程从2-3小时缩短至1-2分钟。工作流包含文案创作、音频生成、图片素材制作和视频合成四大模块,采用大模型处理各环节内容,最终输出可直接导入剪映的草稿文件。特别适合希望快速批量制作文化氛围感强、兼具干货与视觉效果的养生内容创作者,效率提升近百倍。

李同学Lino的博客 3025

[HDU2829]Lawrence

[HDU2829]Lawrence 题面 T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in the Arabian theater and led a group of Arab nationals in guerilla strikes agai...

weixin_34114823的博客 207

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HDU 2829 Lawrence【四边形优化】

http://acm.hdu.edu.cn/showproblem.php?pid=2829 HDU 2829 Lawrence 大意: 有一条直线型的铁路,上面有n个火车站,每个火车站有各自的权重a[i], 现有m枚炮弹,每枚炮弹可炸毁一段铁路。 已知整条铁路的权重W = sum(a[i]*a[j]),其中火车站编号i<j且i与j相连 问如何使用这m枚炮弹使W最小,输...

a48634331的博客 161

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hdu2829Lawrence

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 题意:给定n,m,有n个站点,m个炸弹能炸掉m段铁路,使得最后剩下的价值最小,计算方法看题目中的计算公式。 分析:这题是09年的多校,是很旧的斜率优化的老题了。我们设dp[i][j]表示放了i个炸弹并且最后那个炸弹的位置为j的时候的最小价值。那么显然有转移方程dp[i][j]=min(dp[i-

Fsss 670

Camera2Demo

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

HDU 2829 Lawrence

有点复杂的斜率优化题。 前置知识: ∑i=1n∑j=i+1nai∗aj=(∑i=1nai)2−∑i=1nai22        (1)\sum_{i=1}^n \sum_{j=i+1}^n a_i*a_j=\dfrac{(\sum_{i=1}^n a_i)^2- \sum_{i=1}^n a_i^2}{2}~~~~~~...

curry的博客 207

HDU-2829 Lawrence

T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in the Arabian theater and led a group of Arab nationals in guerilla strikes against the Ottoman Empir...

slass-mot-odet 413

【HDU 2829】Lawrence

四边形不等式优化dp~

Regina8023 862

【HDU】2829 Lawrence

http://acm.hdu.edu.cn/showproblem.php?pid=2829 题意:将长度为n的序列分成p+1块,使得$\sum_{每块}\sum_{i<j} a[i]a[j]$最小(n<=1000,1<=a[i]<=100) #include <cstdio> #include <cstring> #inclu...

185

HDU2829 Lawrence —— 斜率优化DP

题目链接:https://vjudge.net/problem/HDU-2829 Lawrence Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4678Accepted Submission(s): 2150...

alince20008的博客 226
上一篇: HDU - 3480 Division
下一篇: POJ - 2104 K-th Number
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值