Educational Codeforces Round 58 (Rated for Div. 2) F. Trucks and Cities(区间dp+单调优化)

FreeCAD MCP实战:用AI自然语言驱动CAD建模与自动化 在计算机辅助设计(CAD)领域,参数化建模和自动化脚本是提升设计效率的核心技术。其原理在于通过程序化指令控制三维模型的创建与修改,从而将设计意图转化为精确的几何实体。这种技术价值在于显著降低重复性操作成本,实现快速原型迭代和设计探索。在应用场景上,它尤其适用于需要频繁调整尺寸、生成系列化零件或执行规则化建模任务的工程与产品设计。本文聚焦的FreeCAD MCP项目,正是这一理念的先进实践。它通过集成Model Context Protocol(MCP),构建了一个连接Claude AI与FreeCAD的智能 阅读详情

题意

给你a[]个点的x轴位置,代表加油站

m个询问,每次有一辆卡车,输入s,f,c,r四个点

代表从a[s]出发到a[f]允许中途在r个加油站停留(不包括s和f)并加满油

c为单位距离的油的消耗体积

求m辆卡车的油箱最小体积V是多少

思路来源

https://www.cnblogs.com/xht37/p/10263908.html

题解

首先,等价于把s到f分成(r+1)份,只能在加油站点分的时候,求最长距离的最小值

dp[i][j][k]代表从i到j加油站允许停k次的最大距离的最小值

不停时,dp[i][j][0]=a[j]-a[i]

dp[i][j][k]=max(dp[i][w][k-1],a[j]-a[w]);//w为中转站

类似区间dp,但每次只后缀一个

显然,i,k固定时,j越靠右,w就会越靠右,w满足单调性

想想把一段分成两份的中点w,和把一段分成三份三分之二处那个等分点w,显然

此外,这个距离存在最小值,是一个开口向上的凸函数,

显然,w在靠近i的时候,前半段a[j]-a[w]大,

w在靠近j的时候,后半段dp[i][w][k-1](显然>=dp[i][w-1][k-1])大,

技巧:中间找这个最小值,我们只要从i线性推进w,比下一个值小就一直往前推就好了。

这样就是O(n³)

另外凸函数似乎也可以三分找w然后w单增O(n²logn)??

代码

#include <iostream>
#include <algorithm> 
#include <cstring>
#include <cstdio>
#include <cmath>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <queue>
#include <functional>
const int INF=0x3f3f3f3f;
const int maxn=405; 
const int mod=1e9+7;
const int MOD=998244353;
const double eps=1e-7;
typedef long long ll;
#define vi vector<int> 
#define si set<int>
#define pii pair<int,int> 
#define pi acos(-1.0)
#define pb push_back
#define mp make_pair
#define lowbit(x) (x&(-x))
#define sci(x) scanf("%d",&(x))
#define scll(x) scanf("%I64d",&(x))
#define sclf(x) scanf("%lf",&(x))
#define pri(x) printf("%d",(x))
#define rep(i,j,k) for(int i=j;i<=k;++i)
#define per(i,j,k) for(int i=j;i>=k;--i)
#define mem(a,b) memset(a,b,sizeof0(a)) 
using namespace std;
int n,m,a[maxn];
int dp[maxn][maxn][maxn];
//dp[i][j][k]代表从i到j需要k次加油的最大距离的最小值 
int main()
{
	sci(n),sci(m);
	rep(i,1,n)sci(a[i]);
	rep(i,1,n)rep(j,i,n)dp[i][j][0]=a[j]-a[i]; 
	rep(k,1,n)
	{
     rep(i,1,n)
	 {
	 	int w=i;
	 	rep(j,i,n)
	 	{
	 		while(w<j&&max(dp[i][w][k-1],a[j]-a[w])>max(dp[i][w+1][k-1],a[j]-a[w+1]))w++;
	 		dp[i][j][k]=max(dp[i][w][k-1],a[j]-a[w]);
	 	}
	 } 
	} 
	ll ans=0;
	rep(i,1,m)
	{
		int s,f,r;ll c;
		sci(s),sci(f),scll(c),sci(r);
		ans=max(ans,dp[s][f][r]*(ll)c);
	}
	printf("%I64d\n",ans);
	return 0;
}

 

归结法证明真题分析 本文主要探讨了逻辑证明题的三种核心形式及其解题策略。第一类为A1∧A2∧A3→B的证明,常采用线性、单元、支持策略法等归结法,典型案例包括使用归纳法证明特定逻辑公式,并列举了历年真题。第二类为集合交集证明,典型案例为证明任意集合S和T的交集S∩T是S的子集,需将交集和包含关系用逻辑式表达。第三类为常规归结法证明,真题示例为使用归结法证明特定逻辑蕴含关系。掌握前两类证明方法后,第三类问题自然迎刃而解。 阅读详情

相关推荐

AtmelStudio 7 ASF库学习笔记一:新建工程、配置时钟、下载程序和查看官方例程

由于需要学习一下atmel的atsaml 系列,使用AtmelStudio 7开发,之前主要用STM32,现在看到Atmel的库函数,其实是有些类相似的。 ASF3的库对应ST的标准库。ASF4对应ST的HAL库,Ateml Start对应STM32CubeMX。但在这里还是用ASF3来开发,因为Ateml Start还不支持我的这个芯片,而且和STM32的HAL库类似,ASF4为了好移植都是底...

yxy244的博客 8654

Codeforces 1101F Trucks and Cities dp (看题解)

Trucks and Cities 一个很显然的做法就是二分然后对于每个车贪心取check, 这肯定会TLE, 感觉会给人一种贪心去写的误导。。。 感觉有这个误导之后很难往dp那个方向靠。。 dp[ k ][ i ][ j ]表示把 i, j 这个区间分成 k 段, 所有段的最大值的最小值为多少。 然后dp的过程中把车代进去求答案。 #include<bits/stdc...

149

吉比特-笔试

1. 题一:打雷后下雨的概率是80%,而打闪电后下雨的概率是70%,那么即打雷又打闪电后下雨的概率是多少?   答:打雷后下雨和打闪电后下雨都是独立事件,P=1-又打雷又闪电但没下雨的概率= 1 - 0.2 *0.3 = 94%        题二:打雷后下雨的概率是80%,但是没打闪电后下雨的概率是20%,那么打雷了但没打闪电后下雨的概率是多少?答:P=0.8 *0.2 / ( 0.8 *0

naturism的专栏 2495

【 Educational Codeforces Round 58 (Rated for Div. 2) F. Trucks and Cities】 DP+单调队列优化

题目链接 F. Trucks and Cities 题意 有n个城市在x轴上,有m辆卡车,每辆卡车有四个属性,分别是起始城市s,终止城市f,每公里消耗燃料燃料消耗c,和可加油次数r。每次加油卡车油量加满,卡车的油量为V,所有卡车初始油量都是满的。求能让所有卡车从起点到达终点的最小油量V。 2&amp;lt;=n&amp;lt;=400,1&amp;lt;=m&amp;lt;=2500002&amp...

lajiyuan的博客 451

VC Spyglass CDC验证避坑指南:如何正确配置同步复位信号(实验二重点解析)

本文深入解析VC Spyglass CDC验证中同步复位信号的正确配置方法,通过实验二案例详细展示错误配置的典型表现及修正过程。文章提供同步复位的最佳实践方案,包括约束文件修改指南、验证流程优化建议和高级调试技巧,帮助工程师有效避免CDC验证中的常见陷阱。

rock5的博客 678

Doris Streamloader安装教程

Doris Streamloader 是一款用于将数据导入 Doris 数据库的专用客户端工具。本文介绍其在centos7环境下的安装过程

qq_44540985的博客 1089

「CF1101F」Trucks and Cities【决策单调优化dp】

F. Trucks and Cities time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are nnncities along the road, which can be represented as a str...

wzw 401

Xcelium XRUN实用指南:从入门到高效仿真

本文是Xcelium XRUN仿真工具的实用指南,从基础入门到高效应用全面解析。XRUN作为Cadence Xcelium的统一命令行入口,能自动化编译、精细和仿真流程,大幅提升数字芯片与FPGA验证效率。文章详细介绍了最简命令、波形调试、增量编译、多核并行仿真等核心功能,并提供了管理复杂项目、性能调优与深度调试的进阶技巧,帮助工程师快速上手并精通这一高效仿真工具。

weixin_29238147的博客 733

codeforces 1101F Trucks and Cities 区间dp+单调优化 好题

题目传送门 题意简述:(来自洛谷) 有n个城市坐落在一条数轴上,第ii个城市位于位置ai​. 城市之间有m辆卡车穿行.每辆卡车有四个参数:si​为起点编号,fi​为终点编号,ci​表示每行驶1个单位长度需要消耗的油量,ri​表示可以在路途中加油的次数. 当卡车到达一个城市的时候可以将油加满(当然也可以不加),在路中无法加油,但是路途中总加油次数不能超过ri​. 所有卡车的油箱都...

weixin_30319153的博客 318

别再乱选WiFi信道了!手把手教你用WiFi Analyzer优化2.4G/5G家庭网络(附避坑指南)

本文详细介绍了如何使用WiFi Analyzer工具优化家庭WiFi网络,解决2.4GHz和5GHz信道的冲突问题。通过分析信道拥堵原因、提供安装使用指南及优化策略,帮助用户显著提升网络速度与稳定性,特别适合密集住宅区和多设备家庭。

weixin_42665725的博客 5871

在lio_sam中融入GPS

在LIO(激光惯性里程计)系统中,将GPS信息融合到里程计中,借助GTSAM(Georgia Tech Smoothing and Mapping)库进行因子图优化,可以有效提升全局定位精度。当进入到GPS信号不好或缺失的环境中,需要借助融合后的里程计反算经纬度,来获取高精度的定位信息。利用GeographicLib第三方库将经纬度投影到局部笛卡尔坐标系中。

如果想成为中心,那么就到中心去吧。 1210

[CF1101F]Trucks and Cities

换个思路,问题解决!

七代目鸽影 294

QML从入门到实战 - 完整学习路线

想入门 QML 开发?来 “从零开始学 QML” 专栏,海量源码 + 实战案例 + 大型项目拆解,手把手教你搞定跨平台 UI 设计,小白也能轻松掌握!

BenBierBa的博客 3473

Round 1A 2022 - Code Jam 2022 C.Weightlifting(区间dp)

题目 时限20s,T(T<=100)组样例,共E(E<=100)次锻炼,每次锻炼可能需要W(W<=100)种杠铃, 第i天第j种所需要的杠铃片数为Xij(0<=Xij<=100), 杠铃片放到一个形如「栈」的杠铃架上, 比如,第一天是AABA,第二天是AACCDD, 则需要第一天放入AABA,弹掉A,弹掉B, 再放入C,放入C,放入D,放入D,才能得到第二天的杠铃片 最后求杠铃架从空的初始状态,锻炼完E次后,再保持空状态, 所操作的杠铃片的最小数量是多少

小衣同学的博客 1055

SAP B1中文培訓教材_SDK

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Pinely Round 2 (Div. 1 + Div. 2) F. Divide, XOR, and Conquer(区间dp)

②[l,r]异或和为s,s和左端点/右端点的标记有交,说明存在共左端点/右端点的更大的区间的异或和的最高位能被s取到,也就是s比区间另一半大。那么,如果[l,x](xl)的异或和包含b这一位,[y,r]的异或和就一定大于[l,y-1]的异或和。1. [l,r]异或和为0,那么[l,x](xl)的区间都可以异或出。初始时,区间为[1,n],也即l=1,r=n,

小衣同学的博客 935

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Codeforces Round #538 (Div. 2) D - Flood Fill(区间dp)

题目 给你一个序列c[],每个位置有一个数值代表颜色 初始选定某一个起始位置, 可以将包含起始位置连续相同颜色段换成任意颜色, 换一次cost+1, 问最后所有颜色相同时,cost最小为多少 思路来源 https://blog.csdn.net/toohandsomeIeaseId/article/details/86983883 题解 很经典的区间dp问题 大概就是删啊变啊最...

小衣同学的博客 664

2020 CCPC-Wannafly Winter Camp Day6 (Div.1&2) D. 递增递增(区间dp/填坑dp)

题目 n(2<=n<=50)个区间,第i个区间[li,ri](0<=li<ri<=2^60), 你可以从第i个区间里选取一个数放在新序列的第i位,所构成一个长度为n的新序列 若新序列是非严格单调递增序列,则将其所有元素的和加到答案里,求最终的答案。 思路来源 https://blog.csdn.net/qq_43202683/article/details/...

小衣同学的博客 645

蓝桥杯 算法提高-合并石子(区间dp/四边形不等式优化)

题目 在一条直线上有n堆石子,每堆有一定的数量, 每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置, 合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。 1<=n<=1e3,1<=ai<=1e4 思路来源 https://blog.csdn.net/noiau/article/details/72514812 心得 寒假看懂了这个的证明,现...

小衣同学的博客 632

poj1390 Blocks(经典区间dp/消除问题)

题目 思路来源 https://www.cnblogs.com/Tieechal/p/11637638.html清楚明白的讲解 题解 和[Luogu2135] 方块消除及UVA10559 Blocks是一模一样的题目 代码 #include<iostream> #include<cstdio> #include<cstring> us...

小衣同学的博客 610

Gym-101915 K.Poor Ramzi(区间dp)

题目 给一个只由01构成的,长度不超过50的串, 问存在多少种划分方式,使得划分方式中对应的每个连续序列的和所构成的新序列是回文序列, 两个新序列不同当且仅当划分位置不完全相同。 比如1001,若不划分为2;若10|01,则新序列为1,1 思路来源 钱神代码&&归神代码 题解 枚举外面两段,统计中间一段的方案个数, 记忆化搜索中间一段的方案个数, 循环的区间dp...

小衣同学的博客 602

abc106D AtCoder Express 2(区间DP)

题目 给你n代表区间位于数轴1-n内, m个区间,每次添加一个区间 q组询问,每次l,r 问有多少个区间被完全包含在[l,r]内 思路来源 https://blog.csdn.net/qq_37591656/article/details/81814420 题解 暑假里当时做的时候 因为数据弱瞎搞搞就过去了 现在看到了一个O(m+n*n)的做法 把[L,R] 转移到二维数组...

小衣同学的博客 558

Codeforces Round #336 (Div. 1) B.Zuma(区间dp/删回文串求删完的最少次数)

题目 思路来源 https://blog.csdn.net/shremier_zer/article/details/79406854 题解 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

小衣同学的博客 458

poj1160 Post Office(区间dp)

题意 有p个邮局,n个村庄,邮局只能建在村庄里, 求令所有寄信距离之和最短的值。 题解 数据比较弱,O(n^3)过了。 dp[i][j]表示前i个村庄需要j个邮局, 其必为某个前k个村庄用j-1个邮局,k+1到i用1个邮局的最小值。 即可实现转移,对于某段区间建一个的最小值,邮局一定建在中位数即可。 如果有两个中位数,显然两个地点的值是相等的。 从左中位数a转移到右中位数...

小衣同学的博客 453

Codeforces Round #635 (Div. 2) E. Kaavi and Magic Spell(区间dp)

题目 给定一个长度为n(n<=3e3)的串S和一个长度为m(m<=n)的串T 每次可以维护一个双端队列A,可以把当前S串首的位置删掉,补充到A的队首或队尾 n次操作后,A会构成一个串,求串T是A的前缀的方案数,答案mod998244353 思路来源 凡神代码 题解 orz,又一次卡在了思维题上, 把T后面补齐?号,表示通配符, 考虑S的第一个字母总要与T的某一个位置对...

小衣同学的博客 404

hdu6212 Zuma(区间dp+消除问题(含连锁反应))

题目 思路来源 https://blog.csdn.net/Dream_Lolita/article/details/78764613 题解 bzoj1032是这个题的extend版,然而据说是假题orz 代码 #include<iostream> #include<cstdio> #include<cstring> #include<...

小衣同学的博客 395

hdu4283 You Are the One(区间DP/2012 ACM/ICPC Asia Regional Tianjin Online)

题目 思路来源 https://blog.csdn.net/acm_cxlove/article/details/7964594 题解 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std...

小衣同学的博客 380

美团2017年CodeM大赛-初赛A轮 合并回文子串(区间dp)

题目 思路来源 https://blog.nowcoder.net/n/51d6684184b64b1399859ad5a22cbb5f 题解 牛客开启的每日一题活动,这两天貌似是dp, 至少区间dp是我不会的,之前没见过四维的区间dp 邓老师的讲解的确清楚明白啊,%西工大学姐 代码 #include<bits/stdc++.h> using namesp...

小衣同学的博客 336
上一篇: Codeforces Round #532 (Div. 2) F. Ivan and Burgers(可持久化异或线性基+双指针)
下一篇: Codeforces Round #531 (Div. 3) E. Monotonic Renumeration(离散化+区间合并)
小衣同学
博客等级 码龄9年 1444粉丝 995原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小衣同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值