【數據結構?堆】序列和的前n小元素

題目描述

  問題:序列和的前n小元素
  給出兩個長度為n的有序表A和B, 在A和B中各任取一個, 可以得到 n^2 個和. 求這些和最小的n個。

輸入輸出格式

輸入格式:

  輸入數據共三行。
  第一行,一個整數值n ( n <= 10^4 )。
  第二,第三行,各有n個從小到大排好序的整數,每個整數間有一個空格間隔。(每個整數均小于2^30)

輸出格式:

  輸出數據一行,這些和最小的n個數,從小到大輸出,每個整數之間一個空格間隔。

輸入輸出樣例

輸入樣例#1:

10
158443636 284841496 317570810 452077938 476117840 485745865 646752262 998776724 1022863800 1038269864?
8345019 96770572 114185139 211677750 365253930 495542735 670357622 765440815 783523273 835082336?

輸出樣例#1:

166788655 255214208 272628775 293186515 325915829 370121386 381612068 399026635 414341382 431755949

提示信息

數據范圍:
  30%數據,n <= 10^2。
  50%數據,n <= 10^3。
  100%數據,n <= 10^4。


算法分析:

二叉堆模板題:用優先隊列實現

思路:

暴力枚舉每個數,使堆內始終有n個數。

題中有“兩個長度為n的有序表A和B

故,在第二層循環時,若已有n個數,則只需判斷一次即可退出循環。

#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int> > p;
int a[1000010];
int b[1000010];
int c[1000010];
int n,len;
int main()
{cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++)cin>>b[i];for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(len<n){p.push(a[i]+b[j]);len++;}//先把堆填充滿n個數else{if(a[i]+b[j]<=p.top()){p.pop();p.push(a[i]+b[j]);}//優先要小的,比堆頭小就扔掉堆頭else break;//如果a[i]+b[j]小于堆頭,那么對于有序表b來說,a[i]+b[j+1]必定大于堆頭}}}len=0;while(!p.empty()){c[++len]=p.top();p.pop();}for(int i=1;i<=n;i++){cout<<c[n-i+1]<<' ';}return 0;
} 

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

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

相關文章

Linux系列:從0到1用Docker部署springboot項目

目錄 1.前提條件 2.編寫DockerFile鏡像文件 3.打包SpringBoot項目 4.通過軟件Xftp進行傳輸&#xff08;*&#xff09; 1.點擊“文件-新建”?編輯 5.操作遠程主機 1.docker構建 2.容器運行 6.容器的關閉和刪除 1.前提條件 Linux、docker、xftp的安裝、一臺可以訪問的遠…

教雅川學纏論07-中樞實戰眾泰汽車000980

本文實戰眾泰汽車 下面是2023年11月14-2023年8月8眾泰汽車日K圖 先畫日K 接下來處理包含&#xff0c;就變成下面這個樣子 下面在套上纏論的理論&#xff0c;未來股價的走勢應該是紅色橢圓形虛線里面的樣子 好了&#xff0c;文章就到這里&#xff0c;如果眾泰最終不是這個走勢…

linux 目錄操作命令

目錄操作命令 文件列表 ls命令文件列表 ls [選項] [參數]-------------------------------l 詳細信息-L 緊接著符號性連接&#xff0c;列出它們指向的文件-a 所有文件&#xff0c;包含隱藏文件(以點號起始的文件)-A 與-a相同&#xff0c;但是不會列出來. 和 ..-c 根據創建時間排…

IDEA部署配置Maven項目教程,IDEA配置Tomcat(2019.3.3)

一、前言 當涉及到軟件開發和項目管理時&#xff0c;使用一個可靠的構建工具是非常重要的。Maven是一個廣泛使用的構建工具&#xff0c;它為Java項目提供了一種簡化的構建過程和依賴管理。 在本文中&#xff0c;我們將探討如何部署Maven并開始使用它來構建您的項目。我們將介紹…

Java基礎篇--淺拷貝和深拷貝

概念 淺拷貝&#xff08;Shallow Copy&#xff09;和深拷貝&#xff08;Deep Copy&#xff09;是在對象復制過程中常用的概念。 淺拷貝是指創建一個新對象&#xff0c;并將原始對象的非靜態字段的值拷貝到新對象中。如果字段是基本數據類型&#xff0c;直接復制其值&#xf…

開源數據庫Mysql_DBA運維實戰 (修改root密碼)

MySQL——修改root密碼的4種方法 本文以windows為例為大家詳細介紹下MySQL修改root密碼的4種方法&#xff0c;大家可以可以根據的自己的情況自由選擇&#xff0c;希望對大家有所幫助 方法1&#xff1a; 用SET PASSWORD命令 首先登錄MySQL。 格式&#xff1a;mysql> set pass…

Android APK體積優化(瘦身)

1、基礎知識&#xff1a; 1.1 apk結構 lib &#xff1a;存放so文件&#xff0c;對應不同的cpu架構 res &#xff1a;資源文件&#xff0c;layout、drawable等&#xff0c;經過aapt編譯 assets &#xff1a;資源文件&#xff0c;不經過aapt編譯 classes.dex &#xff1a;dx編譯…

爬蟲:使用Selenium模擬人工操作及獲取網頁內容

專欄介紹 結合自身經驗和內部資料總結的Python教程,每天3-5章,最短1個月就能全方位的完成Python的學習并進行實戰開發,學完了定能成為大佬!加油吧!卷起來! 全部文章請訪問專欄:《Python全棧教程(0基礎)》 再推薦一下最近熱更的:《大廠測試高頻面試題詳解》 該專欄對…

graphab 教程 ——生成廊道

Graphab軟件包括圖譜創建、基于圖譜的連通性計算、分析與推廣、制圖四個模塊。Graphab軟件的圖譜創建基于柵格數據進行,包括斑塊識別和連接建立兩個步驟。Graphab 軟件可識別的柵格數據格式包括TIFF、ASCI和RST,柵格像元記錄數值用于識別斑塊類型,識別規則可以選擇四鄰域或八鄰…

2-redis單節點搭建安裝

1.系統要求 本次redis四種模式(單機(standalone)模式、主從(master-slave)模式、哨兵(sentinel)模式、集群(cluster)模式)的搭建,以CentOS服務器進行。 類型版本CentOS7.9Redis7.0.121.1.OS基礎配置 CentOS為了能夠正常安裝redis,需要對CentOS進行常規的一些基礎配置,主要…

【Zabbix安裝-5.5版本】

Zabbix安裝&#xff08;rpm包安裝&#xff09; Index of /zabbix/zabbix/5.5/rhel/8/x86_64/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror rpm包鏈接&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.5/rhel/8/x86_64/zabbix-release-5.5-1.e…

Unity3d C#利用本地網頁快速打開螢石云監控視頻流(ezopen)實現云臺,聲音等控制,支持WebGL平臺,替代UMP播放(含源碼)

前言 之前我介紹了替代Universal?Media?PlayerUMP播放石云監控視頻流(ezopen)的功能&#xff0c;效果還是很明顯的&#xff0c;筆者的測試是差不多3-5秒就能打開監控畫面&#xff0c;不過稍微遺憾的是&#xff0c;之前的功能是iframe打開石云提供的播放網頁的形式&#xff0…

詳解攔截器和過濾器

目錄 代碼演示過濾器Demo攔截器Demo 過濾器自定義攔截器配置攔截器過濾器執行原理多個過濾器的執行順序 攔截器自定義攔截器注冊攔截器1&#xff09;注冊攔截器2&#xff09;配置攔截的路徑3&#xff09;配置不攔截的路徑 多個攔截器的執行順序 過濾器和攔截器的區別 代碼演示 …

HarmonyOS教育類APP項目實戰系列課結課考試答案(1-10講)80分就合格

王丹輝&#xff08;第一講&#xff09;&#xff1a;HarmonyOS教育類APP項目實戰開課及低代碼初體驗 結課考試 及格分80/ 滿分100 評價 判斷題 1. DevEco Studio不能同時支持HarmonyOS和OpenHarmony應用/服務開發 正確(True)錯誤(False) 回答正確 2. DevEco Studio…

C#基礎知識(一)

一、C#程序結構 《1》命名空間的聲明&#xff08;namespace declaration&#xff09; 《2》一個class 《3》class方法 《4》class屬性 《5》一個main方法 《6》語句&#xff08;statements&#xff09;&表達式&#xff08;Expressions&#xff09; 《7》注釋 注&#xff1a…

【設計模式】橋接模式

橋接&#xff08;Bridge&#xff09;是用于把抽象化與實現化解耦&#xff0c;使得二者可以獨立變化。這種類型的設計模式屬于結構型模式&#xff0c;它通過提供抽象化和實現化之間的橋接結構&#xff0c;來實現二者的解耦。 這種模式涉及到一個作為橋接的接口&#xff0c;使得…

C++ 網絡編程項目fastDFS分布式文件系統(二)-redis部分

目錄 1. 數據庫類型 1.1 基本概念 1.2 關系/非關系型數據庫搭配使用 2. Redis 2.1 基本知識點 2.2 redis常用命令 - String類型 - List類型 - Set類型 - SortedSet 類型 - Hash類型 Key 相關的命令 2.3 redis配置文件 2.4 redis數據持久化 3 hiredis的使用 1. 數據…

手搓vue3組件_0,打包配置

打包后引入項目是發現報錯: Cannot read properties of null (reading isCE) TypeError: Cannot read properties of null (reading isCE)這個是由于vue版本沖突問題, 這里我引入了自己打包的ui組件庫,但是ui組件庫中打包進入了自己的vue,那么在此時使用時,如果你引入的自己的組…

原生js發送ajax請求---ajax請求篇(一)

在原生js中我們使用的是XMLHttpRequest對象來發送ajax請求 主要步驟就是&#xff1a; 1.創建XMLHTTPRequest對象 2.使用open方法設置和服務器的交互信息 3.設置發送的數據&#xff0c;開始和服務器端交互 4.注冊事件 5.更新界面 &#xff08;1&#xff09; get方式 //步驟一…

使用python對圖像加噪聲

加上雨點噪聲 import cv2 import numpy as npdef get_noise(img, value10):#生成噪聲圖像>>> 輸入&#xff1a; img圖像value 大小控制雨滴的多少 >>> 返回圖像大小的模糊噪聲圖像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪聲水平&#xff…