P1594 护卫队

博客围绕护卫队过桥问题展开,给出输入输出格式及样例。题解采用动态规划,状态dp[i]表示前i个车合理组合的最小时间,状态转移方程为dp[i]=max(dp[i],dp[j−1]+i—j的最小值),还可预先处理前缀数组判断区间重量合理性。

题目:

题目坐标:护卫队.

护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队达到了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。每辆车的重量是已知的。任何一组车队的重量之和不能超过桥的最大承重量。被分在同一组的每一辆车都以其最快的速度通过该桥。一组车队通过该桥的时间是用该车队中速度最慢的车通过该桥所需的时间来表示的。问题要求计算出全部护卫车队通过该桥所需的最短时间值。

输入格式:

第一行包含三个整数,第一个整数表示该桥所能承受的最大载重量(用吨表示);第二个整数表示该桥长度(用千米表示);第三个整数表示该护卫队中车辆的总数( n < 1000 n<1000 n<1000)。接下来的几行中,每行包含两个正整数 W 和 S(用空格隔开),W 表示该车的重量(用吨表示),S 表示该车过桥能达到的最快速度(用千米/小时表示)。车子的重量和速度是按车子排队等候时的顺序给出的。

输出格式:

输出文件应该是一个实数,四舍五入精确到小数点后1位,表示整个护卫车队通过该桥所需的最短时间(用分钟表示)。

输入输出样例:

100 5 10
40 25
50 20
50 20
70 10
12 50
9 70
49 30
38 25
27 50
19 70
75.0

题解:

状态:dp[i]表示前i个车,经过合理的组合,所得到的最小时间。所以当每枚举到一个i时,只用往前找在合理的情况下选择最小的一组。
状态转移方程: d p [ i ] = m a x ( d p [ i ] , d p [ j − 1 ] + i — j 的 最 小 值 ) dp[i] = max(dp[i], dp[j - 1] + i—j的最小值) dp[i]=max(dp[i],dp[j1]+ij)
i表示前i辆车, d p [ j − 1 ] + i — j 的 最 小 值 dp[j - 1] + i—j的最小值 dp[j1]+ij 表示前i辆车,将i—j分成一组的时间值。
注意一组的时间值即为每一组最慢车的时间。
还有就是我们可以预先处理一个前i辆车重量的前缀数组,然后每次对于i,j求一个区间重量判断是否合理即可。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAXN = 1005, MAXM = 1e5 + 5;
double zd, w[MAXN], s[MAXN], dp[MAXN], f[MAXN][55], m, d[MAXN];
int n;
double q(int l, int r) {
	double _max = -0x3f3f3f3f;//因为同样路程时间最大的,速度最慢所以每次取max
	for(int i = l;i <= r; i++) _max = max(_max, f[i][0]);
	return _max;
}
int main() {
	scanf("%lf %lf %d", &zd, &m, &n);
	for(int i = 1;i <= n; i++) {
		scanf("%lf %lf", &w[i], &s[i]);
		dp[i] = double(m / s[i] * 1.0);
		f[i][0] = dp[i];
	}
	for(int i = 1;i <= n; i++) d[i] = d[i - 1] + w[i];
	for(int i = 1;i <= n; i++) {
		dp[i] += dp[i - 1];
		for(int j = i - 1;j >= 1; j--) {
			if(d[i] - d[j - 1] <= zd) dp[i] = min(dp[i], dp[j - 1] + q(j, i));
			else break;
		}
	}
	printf("%.1lf", dp[n] * 60);//注意最后求的是分钟数
	return 0; 
} 

如果是求区间最大我们不难想到ST.。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAXN = 1005, MAXM = 1e5 + 5;
double zd, w[MAXN], s[MAXN], dp[MAXN], f[MAXN][55], m, d[MAXN];
int n;
void ST(double n) {
	int k = log(n) / log(2) + 1;
	for(int j = 1;j < k; j++) {
		for(int i = 1;i <= n - (1 << j) + 1; i++) {
			f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);
		}
	}
} 
double STF(int l, int r) {
	int k = log(r - l + 1) / log(2);
	return max(f[l][k], f[r - (1 << k) + 1][k]);
}
int main() {
	scanf("%lf %lf %d", &zd, &m, &n);
	for(int i = 1;i <= n; i++) {
		scanf("%lf %lf", &w[i], &s[i]);
		dp[i] = double(m / s[i] * 1.0);
		f[i][0] = dp[i];
	}
	ST(n);
	for(int i = 1;i <= n; i++) d[i] = d[i - 1] + w[i];
	for(int i = 1;i <= n; i++) {
		dp[i] += dp[i - 1];
		for(int j = i - 1;j >= 1; j--) {
			if(d[i] - d[j - 1] <= zd) dp[i] = min(dp[i], dp[j - 1] + STF(j, i));
			else break;
		}
	}
	printf("%.1lf", dp[n] * 60);
	return 0; 
} 
内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值