【藍橋杯】貪心算法

1. 區間調度

1.1. 題目

給定n個區間,每個區間由開始時間start和結束時間end表示。請選擇最多的互不重疊的區間,返回可以選擇的區間的最大數量。

輸入格式

  • 第一行包含一個整數n,表示區間的數量

  • 接下來n行,每行包含兩個整數,分別表示區間的開始時間和結束時間

輸出格式

  • 一個整數,表示最多可以選擇的互不重疊的區間數量

示例輸入

4
1 3
2 4
3 5
6 7

示例輸出

3

1.2. 思路

1. 理解問題:我們需要從給定的多個區間中選出盡可能多的區間,且這些區間之間沒有任何重疊部分。

2. 貪心算法思想:貪心算法在每一步選擇中都采取當前狀態下最優的選擇,從而希望導致全局最優的結果。對于區間調度問題,常見的貪心策略有:

  • 最早開始時間

  • 最早結束時間

  • 最短區間長度

  • 最少沖突區間

其中,"最早結束時間"策略被證明可以得到最優解。

3. 為什么選擇最早結束時間?

  • 選擇一個結束早的區間,可以給后面留下更多的時間安排其他區間

  • 這樣能最大化剩余可用時間,從而可能選擇更多區間

4. 算法步驟

  1. 將所有區間按照結束時間從小到大排序

  2. 初始化選擇的區間數量為0,記錄上一個選中區間的結束時間

  3. 遍歷排序后的區間:

    • 如果當前區間的開始時間 >= 上一個選中區間的結束時間

    • 則選擇當前區間,更新結束時間,計數+1

  4. 返回最終的計數結果

5. 時間復雜度

  • 排序:O(n log n)

  • 遍歷:O(n)

  • 總時間復雜度:O(n log n)

1.3. 代碼

# 讀取輸入
n = int(input())  # 區間數量
intervals = []
for _ in range(n):start, end = map(int, input().split())intervals.append([start, end])"""
計算最多可以選擇的互不重疊的區間數量  
參數:intervals: 區間列表,每個區間表示為[start, end]  
返回:最多可以選擇的互不重疊的區間數量
"""
# 特殊情況處理:如果沒有區間或只有一個區間
if not intervals:print(0)
if len(intervals) == 1:print(1)
# 1. 按照區間的結束時間進行升序排序
# 這樣我們可以優先選擇結束早的區間

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901050.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901050.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901050.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一維差分數組

2.一維差分 - 藍橋云課 問題描述 給定一個長度為 n 的序列 a。 再給定 m 組操作,每次操作給定 3 個正整數 l, r, d,表示對 a_{l} 到 a_{r} 中的所有數增加 d。 最終輸出操作結束后的序列 a。 ??Update??: 由于評測機過快,n, m 于 20…

二分答案----

二分答案 - 題目詳情 - HydroOJ 問題描述 給定一個由n個數構成的序列a,你可以進行k次操作,每次操作可以選擇一個數字,將其1,問k次操作以后,希望序列里面的最小值最大。問這個值是多少。 輸入格式 第一行輸入兩個正…

旋轉位置編碼

旋轉位置編碼(Rotary Position Embedding,RoPE): 一種能夠將相對位置信息依賴集成到 self-attention 中并提升 transformer 架構性能的位置編碼方式。 和相對位置編碼相比,RoPE 具有更好的外推性,目前是大模型相對位…

.NET-EFCore基礎知識

.NET EF Core(Entity Framework Core)是微軟開發的一款開源的對象關系映射(ORM)框架,用于在.NET 應用程序中與數據庫進行交互。以下是一些.NET EF Core 的基礎知識: 1. 什么是 EF Core EF Core 是.NET 平…

利用 RNN 預測股票價格:從數據處理到可視化實戰

在金融領域,預測股票價格走勢一直是眾多投資者和研究者關注的焦點。今天,我們將利用深度學習中的循環神經網絡(RNN)來構建一個簡單的股票價格預測模型,并詳細介紹從數據加載、預處理、模型搭建、訓練到最終結果可視化的…

LangGraph 架構詳解

核心架構組件 LangGraph 的架構建立在一個靈活的基于圖的系統上,使開發者能夠定義和執行復雜的工作流。以下是主要架構組件: 1. 狀態管理系統 LangGraph 的核心是其強大的狀態管理系統,它允許應用程序在整個執行過程中維護一致的狀態&…

Python 深度學習實戰 第1章 什么是深度學習代碼示例

第1章:什么是深度學習 內容概要 第1章介紹了深度學習的背景、發展歷史及其在人工智能(AI)和機器學習(ML)中的地位。本章探討了深度學習的定義、其與其他機器學習方法的關系,以及深度學習在近年來取得的成…

swift菜鳥教程1-5(語法,變量,類型,常量,字面量)

一個樸實無華的目錄 今日學習內容:1.基本語法引入空格規范輸入輸出 2.變量聲明變量變量輸出加反斜杠括號 \\( ) 3.可選(Optionals)類型可選類型強制解析可選綁定 4.常量常量聲明常量命名 5.字面量整數 and 浮點數 實例字符串 實例 今日學習內容: 1.基本…

GAT-GRAPH ATTENTION NETWORKS(論文筆記)

CCF等級:A 發布時間:2018年 代碼位置 25年4月21日交 目錄 一、簡介 二、原理 1.注意力系數 2.歸一化 3.特征組合與非線性變換 4.多頭注意力 4.1特征拼接操作 4.2平均池化操作 三、實驗性能 四、結論和未來工作 一、簡介 圖注意力網絡&…

XML、JSON 和 Protocol Buffers (protobuf) 對比

目錄 1. XML (eXtensible Markup Language) 1)xml的特點: 2)xml的適用場景: 2. JSON (JavaScript Object Notation) 1)JSOM的特點: 2)JSON的適用場景: 3. Protocol Buffers (…

如何通過簡單步驟保護您的網站安全

在如今的數字化時代,網站安全已經成為每個網站管理者都不能忽視的重點。未授權用戶入侵、數據泄露和惡意軟件等威脅越來越多,網站安全對于保護企業、用戶和客戶的數據非常重要。為了幫助您提升網站的安全性,本文介紹了一些簡單且有效的措施&a…

【后端開發】初識Spring IoC與SpringDI、圖書管理系統

文章目錄 圖書管理系統用戶登錄需求分析接口定義前端頁面代碼服務器代碼 圖書列表展示需求分析接口定義前端頁面部分代碼服務器代碼Controller層service層Dao層modle層 Spring IoC定義傳統程序開發解決方案IoC優勢 Spring DIIoC &DI使用主要注解 Spring IoC詳解bean的存儲五…

通付盾風控智能體(RiskAgent): 神煩狗(DOGE)

在數字化業務高速發展的今天,風控系統已成為企業抵御黑產、欺詐、保障交易安全的核心防線。然而傳統風控面臨人力依賴高與策略滯后性等挑戰,數據分析師需每日從海量數據中手動提煉風險特征、設計防護規則,耗時費力;新策略從發現到…

大模型論文:Language Models are Unsupervised Multitask Learners(GPT2)

大模型論文:Language Models are Unsupervised Multitask Learners(GPT2) 文章地址:https://storage.prod.researchhub.com/uploads/papers/2020/06/01/language-models.pdf 摘要 自然語言處理任務,例如問答、機器翻譯、閱讀理解和摘要&am…

分布式ID生成方案的深度解析與Java實現

在分布式系統中,生成全局唯一的ID是一項核心需求,廣泛應用于訂單編號、用戶信息、日志追蹤等場景。分布式ID不僅需要保證全局唯一性,還要滿足高性能、高可用性以及一定的可讀性要求。本文將深入探討分布式ID的概念、設計要點、常見生成方案&a…

記 etcd 無法在docker-compose.yml啟動后無法映射數據庫目錄的問題

1、將etcd 單獨提取 Dockerfile,指定配置文件和數據目錄 #鏡像 FROM bitnami/etcd:3.5.11 #名稱 ENV name"etcd" #重啟 ENV restart"always" #運行無權限 ENV ALLOW_NONE_AUTHENTICATION"yes" #端口 EXPOSE 2379 2380 #管理員權限才…

怎樣才不算干擾球·棒球1號位

在棒球運動中,"干擾球"(Interference)是指球員或場外人員非法影響了比賽的正常進行。以下情況通常 不構成干擾,屬于合法行為或無需判罰: 1. 擊跑員(Batter-Runner)合法跑壘 跑壘限制…

PyTorch實現多輸入輸出通道的卷積操作

本文通過代碼示例詳細講解如何在PyTorch中實現多輸入通道和多輸出通道的卷積運算,并對比傳統卷積與1x1卷積的實現差異。 1. 多輸入通道互相關運算 當輸入包含多個通道時,卷積核需要對每個通道分別進行互相關運算,最后將結果相加。以下是實現…

深入解析 MySQL 中的日期時間函數:DATE_FORMAT 與時間查詢優化、DATE_ADD、CONCAT

深入解析 MySQL 中的日期時間函數:DATE_FORMAT 與時間查詢優化 在數據庫管理和應用開發中,日期和時間的處理是不可或缺的一部分。MySQL 提供了多種日期和時間函數來滿足不同的需求,其中DATE_FORMAT函數以其強大的日期格式化能力,…

SSH配置優化:提升本地內網Linux服務器遠程連接速度與穩定性

文章目錄 引言一. 理解SSH連接過程與影響因素二. 服務器端SSH配置優化三. 客戶端SSH配置優化四. 高級技巧五. 內網穿透突破公網IP限制總結 引言 SSH (Secure Shell) 是一種網絡協議,用于加密的網絡服務,常用于遠程登錄和管理Linux服務器。對于本地內網的…