首页 > 其他分享 >1602:烽火传递

1602:烽火传递

时间:2024-06-18 12:11:59浏览次数:22  
标签:烽火台 1602 传递 烽火 代价 dp

// 1602:烽火传递.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <cstring>
using namespace std;

/*
* https://loj.ac/p/10180
http://ybt.ssoier.cn:8088/problem_show.php?pid=1602
原题来自:NOIP 2010 提高组初赛 · 完善程序

烽火台是重要的军事防御设施,一般建在交通要道或险要处。一旦有军情发生,则白天用浓烟,晚上有火光传递军情。

在某两个城市之间有 n
 座烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确传递,在连续 m
 个烽火台中至少要有一个发出信号。现在输入 n,m
 和每个烽火台的代价,请计算总共最少的代价在两城市之间来准确传递情报。

【输入】
第一行是 n,m,表示 n 个烽火台和连续烽火台数 m;

第二行 n 个整数表示每个烽火台的代价 ai。

【输出】
输出仅一个整数,表示最小代价。

【输入样例】
5 3
1 2 5 6 2
【输出样例】
4

对于全部数据,1<= n,m<= 2 * 10^5,1<= a_i<= 1000。
*/

const int N = 200010;
int dp[N];
int arr[N];
int n, m;


int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> arr[i];
	}
	memset(dp, 0x3f, sizeof dp);
	dp[0] = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = max(0, i - m); j < i; j++) {
			dp[i] = min(dp[i], dp[j] + arr[i]);
		}
	}
	int ans = 0x3f3f3f3f;
	for (int i = n; i >= max(n - m + 1, 1); i--) {
		ans = min(ans, dp[i]);
	}

	cout << ans << endl;

	return 0;
}

视频题解空间

标签:烽火台,1602,传递,烽火,代价,dp
From: https://www.cnblogs.com/itdef/p/18254083

相关文章

  • 东周列国志 - 第二回 褒人赎罪献美女 幽王烽火戏诸侯
    话说宣王自东郊游猎,遇了杜伯、左儒阴魂索命,得疾回宫,合眼便见杜伯、左儒,自知不起,不肯服药。三日之后,病势愈甚。其时周公久已告老,仲山甫已卒。乃召老臣尹吉甫、召虎托孤。二臣直至榻前,稽首问安。宣王命内侍扶起,靠于绣褥之上,谓二臣曰:“朕赖诸卿之力,在位四十六年,南征北伐,四海安宁。不......
  • 【Android面试八股文】为什么Android中要设计为只能在UI线程中去更新UI?Android中子线
    文章目录一、Android为什么不能在子线程更新UI?二、为什么Android中要设计为只能在UI线程中去更新UI?三、如果不在UI线程中更新UI,可能会出现什么问题呢?四、ViewRootImp是在onActivityCreated方法后面创建的吗?五、为什么一开始在Activity的onCreate方法中创建一个子线程访问......
  • 鸿蒙构建中如何获取Jenkins传递的环境变量参数
    在鸿蒙(HarmonyOS)应用开发中,我们常常需要与Jenkins这样的持续集成工具集成,以便自动化构建和部署我们的应用。一个常见的需求是在构建过程中获取Jenkins传递的环境变量参数,并将这些参数应用到我们的源代码中。本文将详细介绍如何在鸿蒙构建过程中获取并使用Jenkins的环境变量......
  • 基于Java+Vue的企事业移动培训考试平台:提升员工能力,助力文化传递(源码分享)
    前言:企事业移动培训考试平台是一个集成多种功能的综合性平台,旨在为企业提供便捷、高效、灵活的在线培训和考试解决方案。以下是针对平台所列出的八个主要功能的详细解释:一、文档管理及在线预览允许企业上传、存储、管理和分享各种培训文档,如PPT、PDF、Word等。提供在线预览......
  • 数据库表名作为参数传递给存储过程的方法
    CREATE   PROCEDURE   SpecialInsertProcedure        @TableName   varchar (50),       @userId   varchar (10),        @pwd   varchar (10),        @userRole intAS      exec ( 'insertinto' +@TableN......
  • pytest的数据驱动和参数传递
    4.1参数化介绍常见使用场景:简单注册功能,也就是输入用户名、输入密码、单击注册,而测试数据会有很多个,可以通过测试用例设计技术组织出很多测试数据,例如用户名都是字母,密码也都是字母,或者都是数字,也可是它们的组合,或是边界值长度的测试数据等。这时可以通过参数化技术实现测试数据......
  • nuxt框架中路由动态传参及结构分析之文章跳转详情页面传递文章id
    在nuxt里面我们会经常使用到路由传递参数,列如,登录,文章跳转详情页面等,下面我就以文章列表跳转文章详情页面记录一下。1、首先这个是我的目录结构:在文章列表页面:list.vue(layout目录下的这里其实是一个组件)里面我写了这样一段实现跳转传递,这里我使用到了<nuxt-link>(当然你有其他......
  • maven 依赖传递和阻断
    一、依赖传递这是一个普通依赖,表示当前项目helloFriend依赖名为hello项目<dependency> <groupId>com.qcby.maven</groupId> <artifactId>hello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </depende......
  • 深入解析Kafka消息传递的可靠性保证机制
    深入解析Kafka消息传递的可靠性保证机制Kafka在设计上提供了不同层次的消息传递保证,包括atmostonce(至多一次)、atleastonce(至少一次)和exactlyonce(精确一次)。每种保证通过不同的机制实现,下面详细介绍Kafka如何实现这些消息传递保证。1.AtMostOnce(至多一次)在这种模......
  • PyQT5之为槽函数传递参数
    方法一:lambda表达式传递参数fromPyQt5.QtCoreimport*fromPyQt5importQtCorefromPyQt5.QtWidgetsimport*importsysclassLambdaSlotArg(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("使用Lambda表达式为槽函......