算法競賽---反悔貪心

反悔貪心

Work Scheduling G

什么是返回貪心呢,就是先選擇,遇到更好的之后在反悔選擇更好的,這是符合貪心的邏輯的。

#include <bits/stdc++.h>
// https://www.luogu.com.cn/problem/P2949
using namespace std;
struct node
{int d, p;bool operator<(node &b){return d < b.d;}
} w[100005];
long long ans;
priority_queue<int, vector<int>, greater<int>> q;
int main()
{int n;cin >> n;for (int i = 1; i <= n; i++){cin >> w[i].d >> w[i].p;}sort(w + 1, w + n + 1); // 按照時間進行排序for (int i = 1; i <= n; i++){// 隊列里面有幾個q.size() 就是最長的時間了//  如果和時間相等的話,把隊列最前面的取出來進行比較if (w[i].d == q.size()) // 這個如何理解呢?如果w的d就是時間等于q的size(){if (w[i].p > q.top()){ans -= q.top();q.pop();q.push(w[i].p);ans += w[i].p;}}else{q.push(w[i].p);ans += w[i].p;}}cout << ans;
}

代碼的分析
首先分析題目,在截止時間之前需要完成,我們可以用struct結構體來存儲對應的截止時間和價值,根據截止時間進行排序。for循環遍歷,添加到隊列中去,如果要添加的截止時間等于優先隊列的長度,表示在這個時間內也可以做這件事情,就需要判斷即將添加進來的這件事情的價值和優先隊列中的最小價值比較,如果隊列里面的最小價值小,那么就將其出隊,再把新的添加進去。

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

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

相關文章

Linux(ubuntu)利用ffmpeg+qt設計rtsp_rtmp流媒體播放器(完全從0開始搭建環境進行開發)

一、前言 從0開始搭建Linux下Qt、ffmpeg開發環境。 從安裝虛擬機開始、安裝Linux(Ubuntu)系統、安裝Qt開發環境、編譯ffmpeg源碼、配置ffmpeg環境、編寫ffmpeg項目代碼、完成項目開發。 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開…

公務員國考省考小白需知

文章目錄&#xff1a; 一&#xff1a;分類 1.國考 2.省考 二&#xff1a;必備途徑 1.相關網站 1.1 官網 1.1.1 必須知道的 1.1.2 比較好用的 1.1.3 事業單位的 1.2 機構 ??1.3 時事 ??1.4 資源 1.5 題庫 1.6 真題 ?2.相關公主號 3.應用 4.群聊如何找 三…

笙默考試管理系統-MyExamTest----codemirror(53)

笙默考試管理系統-MyExamTest----codemirror&#xff08;53&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;51&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試…

【TwinCAT學習筆記 1】TwinCAT開發環境搭建

寫在前面 作為技術開發人員&#xff0c;開啟任何一項開發工作之前&#xff0c;首先都要搭建好開發環境&#xff0c;所謂磨刀不誤砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸載再裝。我曾遇到過一個學生&#xff0c;僅搭建環境就用了兩周&#xff0c;這個過程也是一…

ATM的轉賬

【 1 】明確我們要實現的功能 # 用戶功能菜單 # 1.注冊 # 2.登陸 # 3.取款 # 4.轉賬 # 5.充值余額 # 6.查看流水 # 7.查看銀行信息(查看自己…

基于Redis在定時任務里判斷其他定時任務是否已經正常執行完的方案

執行的定時任務是基于其他定時任務計算得到的結果基礎上做操作的&#xff0c;那么如何來確定其他存在數據依賴的定時任務已經執行完成呢&#xff1f; 在分布式環境里&#xff0c;可通過集群的redis來解決這個問題&#xff1a; 即&#xff0c;在跑批任務開始時&#xff0c;將任…

SSD數據在寫入NAND之前為何要隨機化?-part2

接part1介紹&#xff1a; 如何達到這個目的&#xff1f;業內常用的是對寫入數據的數據進行隨機化處理&#xff0c;這部分主要在SSD控制器中通過硬件實現。 上圖b/c&#xff1a;在控制器芯片通過硬件方式實現隨機化的讀寫流程&#xff0c;這個也是業內通常做法。隨機化處理是在寫…

【K8S in Action】服務:讓客戶端發現pod 并與之通信(1)

服務是一種為一組功能相同的 pod 提供單一不變的接入點的資源。當服務存在時&#xff0c;它的 IP 地址和端口不會改變。 客戶端通過 IP 地址和端口號建立連接&#xff0c; 這些連接會被路由到提供該服務的任意一個 pod 上。 pod 是短暫&#xff0c;會刪除增加&#xff0c;調度…

Android 13 Settings藍牙列表卡頓問題排查及優化過程

一.背景 此問題是藍牙列表界面息屏后再點擊亮屏藍牙界面卡住,劃不動也不能返回,在人多的時候(附近開啟的藍牙設備過多的時候)會卡住大概四五秒才能滑動. 優化前效果見資源: 二.查找耗時點 根據Android Studio的Profiler工具進行排查,查找主線程時間線比較長的方法,如下:…

IDEA遠程調試與JDWP調試端口RCE漏洞

文章目錄 前言Docker遠程調試Java調試原理遠程調試實踐 JDWP端口RCE調試端口探測調試端口利用 總結 前言 在對一些 Java CVE 漏洞的調試分析過程中&#xff0c;少不了需要搭建漏洞環境的場景&#xff0c;但是本地 IDEA 搭建的話既麻煩&#xff08;通過 pom.xml 導入各種漏洞組…

面向對象編程教程

面向對象編程是一種基于對象的編程范型&#xff0c;它將程序中的數據和操作數據的方法看作一個整體&#xff0c;通過封裝、繼承和多態等機制來實現代碼的復用和可擴展性。面向對象編程也是現代軟件開發的主流編程范式之一&#xff0c;廣泛應用于各種編程語言中&#xff0c;如C、…

Zookeeper系統性學習-應用場景以及單機、集群安裝

Zookeeper 是什么&#xff1f; Zookeeper 為分布式應用提供高效且可靠的分布式協調服務&#xff0c;提供了諸如統一命名服務、配置管理和分布式鎖等分布式的基礎服務。在解決分布式數據一致性方面&#xff0c;ZooKeeper 并沒有直接采用 Paxos 算法&#xff0c;而是采用了名為 …

Android Studio Gradle下載慢解決方法

Android Studio Gradle下載慢解決方法 最近在練習模型部署&#xff0c;主要是在手機端部署&#xff0c;所以使用到了Android Studio&#xff0c;但是在創建項目的時候&#xff0c;一致在下載gradle&#xff0c;而且網速還很慢&#xff0c;不對&#xff0c;是極慢哪種&#xff0…

MQTT發布、訂閱和取消訂閱

在本文中&#xff0c;我們將深入了解MQTT發布、訂閱和取消訂閱相關的內容。如果你剛接觸發布/訂閱模型&#xff0c;建議閱讀本專欄之前的文章。 什么是MQTT發布消息 在MQTT中&#xff0c;一個客戶端連接到代理&#xff08;broker&#xff09;之后可以立即發布消息。這些消息依…

NetSuite預算管理實踐

NetSuite預算相關的原生功能有兩個&#xff1a; 一個是Expense Commitments And Budget Validation這個SuiteApp&#xff0c;我們在一年前寫過一篇文章介紹過。它強調預算的過程控制&#xff0c;但由于功能很有限&#xff0c;沒有實際用處。 NetSuite Budget功能包_netsuite …

Vue3 pinia的基本使用

pinia的使用跟vuex很像&#xff0c;去除了很多沒用的api&#xff0c;寫法有兩種&#xff0c;一種老式的選項式api還有一種組合式api&#xff0c;用哪種根據自己喜好來&#xff0c;以下示例為組合式api 更多教程參考官網&#xff1a;pinia官網https://pinia.vuejs.org/zh/ 安裝…

機器學習基本概念2

資料來源&#xff1a; https://www.youtube.com/watch?vYe018rCVvOo&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index1 https://www.youtube.com/watch?vbHcJCp2Fyxs&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index2 分三步 1、 定義function b和w是需要透…

linux之autoconf(1)基礎介紹

Linux之autoconf(1)基礎介紹 Author&#xff1a;Onceday Date&#xff1a;2023年2023年12月10日 漫漫長路&#xff0c;才剛剛開始… 本文主要內容翻譯自Autoconf官方文檔&#xff0c;僅供學習交流之用。 全系列文章請查看專欄: buildroot編譯框架_Once_day的博客-CSDN博客。…

FL Studio21最新FL水果編曲軟件中文版在哪下載?

FL Studio21水果編曲軟件是一款專業的音樂制作軟件&#xff0c;被廣泛地應用于電子音樂、hip-hop、流行樂等多種音樂類型的制作。該軟件提供了豐富的音頻編曲工具和音樂效果器&#xff0c;讓用戶可以輕松地創作出高品質的音樂作品。同時&#xff0c;這也是一款非常易于上手的軟…

[ 云計算 | Azure 實踐 ] 在 Azure 門戶中創建 VM 虛擬機并進行驗證

文章目錄 一、前言二、在 Azure Portal 中創建 VM三、驗證已創建的虛擬機資源3.1 方法一&#xff1a;在虛擬機服務中查看驗證3.1 方法二&#xff1a;在資源組服務中查看驗證 四、文末總結 一、前言 本文會開始創建新系列的專欄&#xff0c;專門更新 Azure 云實踐相關的文章。 …