Inhaltsverzeichnis
Lösung
, um zu veranschaulichen, wie unser Lösungsprogramm funktioniert
Heim Backend-Entwicklung C++ Finden Sie das erste Element größer oder gleich X in der Präfixsumme von N Zahlen mithilfe des binären Liftings in C++

Finden Sie das erste Element größer oder gleich X in der Präfixsumme von N Zahlen mithilfe des binären Liftings in C++

Aug 26, 2023 pm 10:57 PM
查找 前缀和 二进制提升

Finden Sie das erste Element größer oder gleich X in der Präfixsumme von N Zahlen mithilfe des binären Liftings in C++

In diesem Problem erhalten wir ein Array arr[] bestehend aus N Zahlen und einem ganzzahligen Wert x. Unsere Aufgabe besteht darin, ein Programm zu erstellen, das binäres Boosting verwendet, um das erste Element in einer Präfixsumme von N Zahlen zu finden, das größer oder gleich X ist.

Die Präfixsumme 数组元素的强> ist ein Array, bei dem jedes Element die Summe aller Elemente im anfänglichen Array bis zu diesem Index ist.

Beispiel – array[] = {5, 2, 9, 4, 1}

prefixSumArray[] = {5, 7, 16, 20, 21}

Lassen Sie uns ein Beispiel nehmen, um dieses Problem zu verstehen,

Input: arr[] = {5, 2, 9, 4, 1}, X = 19
Output: 3
Nach dem Login kopieren

Lösung

Hier verwenden wir das Konzept von Binary Boost, um das Problem zu lösen. Die binäre Förderung erhöht den Wert einer bestimmten Zahl um eine Potenz von 2 (durch Umdrehen von Bits) im Bereich von 0 bis N.

Wir betrachten ein Konzept ähnlich dem Boosted Binary Tree, bei dem wir den Anfangswert des „P“-Index finden. Dieser Wert wird durch das Umdrehen von Bits erhöht, um sicherzustellen, dass der Wert nicht größer als X ist. Nun betrachten wir die Auftriebskraft an dieser Position „P“.

Dazu beginnen wir mit dem Umdrehen der Bits der Zahl. Durch Umdrehen des i-ten Bits wird die Summe beispielsweise nicht größer als X. Abhängig vom Wert von „P“ haben wir nun zwei Fälle –

Zielposition liegt zwischen „Position + 2^i“ und „Position + 2^(i+1)“, wobei i-th Boost erhöht den Wert. Alternativ liegt die Zielposition zwischen „Position“ und „Position + 2^i

Dabei betrachten wir die Indexposition

, um zu veranschaulichen, wie unser Lösungsprogramm funktioniert

rrree

Ausgabe

#include <iostream>
#include <math.h>
using namespace std;
void generatePrefixSum(int arr[], int prefSum[], int n){
   prefSum[0] = arr[0];
   for (int i = 1; i < n; i++)
      prefSum[i] = prefSum[i - 1] + arr[i];
}
int findPreSumIndexBL(int prefSum[], int n, int x){
   int P = 0;
   int LOGN = log2(n);
   if (x <= prefSum[0])
      return 0;
   for (int i = LOGN; i >= 0; i--) {
      if (P + (1 << i) < n &&
         prefSum[P + (1 << i)] < x) {
         P += (1 << i);
      }
   }
   return P + 1;
}
int main(){
   int arr[] = { 5, 2, 9, 4, 1 };
   int X = 19;
   int n = sizeof(arr) / sizeof(arr[0]);
   int prefSum[n] = { 0 };
   generatePrefixSum(arr, prefSum, n);
   cout<<"The index of first elements of the array greater than the given number is ";
   cout<<findPreSumIndexBL(prefSum, n, X);
   return 0;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonFinden Sie das erste Element größer oder gleich X in der Präfixsumme von N Zahlen mithilfe des binären Liftings in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So deaktivieren Sie „Mein iPhone suchen'. So deaktivieren Sie „Mein iPhone suchen'. Nov 09, 2023 pm 02:21 PM

Was passiert, wenn Sie Find My auf dem iPhone deaktivieren? „Mein iPhone suchen“ hilft Ihnen, ein verlorenes oder gestohlenes Gerät zu finden. Wenn die Funktion „Mein iPhone suchen“ aktiviert ist, können Sie den Standort Ihres Geräts auf einer Karte verfolgen, Töne abspielen und Ihnen bei der Suche nach Ihrem Gerät helfen. Find My verfügt außerdem über eine Aktivierungssperre, um zu verhindern, dass jemand Ihr iPhone verwendet. Wenn Sie „Mein iPhone suchen“ deaktivieren, gehen alle diese Funktionen verloren, was die Wiederherstellung eines verlorenen Apple-Geräts erschweren kann. Obwohl Find My iPhone sehr nützlich ist, sollten Sie es deaktivieren, wenn Sie Ihr Telefon verkaufen, spenden, eintauschen oder zum Batteriewechsel oder für einen anderen Service einsenden möchten. Dadurch wird sichergestellt, dass niemand auf Informationen über Sie zugreifen kann

4 Möglichkeiten, Find My auf dem iPhone zu deaktivieren 4 Möglichkeiten, Find My auf dem iPhone zu deaktivieren Feb 02, 2024 pm 04:15 PM

Mit der Find My-App von Apple können Sie Ihr iPhone oder ein anderes Gerät orten, um zu verhindern, dass es verloren geht oder vergessen wird. Obwohl Find My ein nützliches Tool zum Verfolgen von Geräten ist, möchten Sie es möglicherweise deaktivieren, wenn Sie Bedenken hinsichtlich der Privatsphäre haben, Ihren Akku nicht entladen möchten oder aus anderen Gründen. Glücklicherweise gibt es mehrere Möglichkeiten, Find My auf dem iPhone zu deaktivieren, die wir alle in diesem Artikel erklären. So deaktivieren Sie Find My auf dem iPhone [4 Methoden] Sie können Find My auf dem iPhone auf vier Arten deaktivieren. Wenn Sie Methode 1 zum Deaktivieren der Suchfunktion verwendet haben, können Sie dies von dem Gerät aus tun, auf dem Sie die Funktion deaktivieren möchten. Um mit den Methoden 2, 3 und 4 fortzufahren, sollte das iPhone, auf dem Sie Find Finder deaktivieren möchten, ausgeschaltet sein oder

Finden Sie den Index eines Elements in einem Array mit der Funktion Array.IndexOf in C# Finden Sie den Index eines Elements in einem Array mit der Funktion Array.IndexOf in C# Nov 18, 2023 am 09:59 AM

Verwenden Sie die Funktion Array.IndexOf in C#, um den Index eines Elements in einem Array zu ermitteln. Wenn wir in einem C#-Programm den Index eines Elements in einem Array ermitteln müssen, können wir die Funktion Array.IndexOf verwenden. Die Funktion Array.IndexOf findet das angegebene Element innerhalb des angegebenen Array-Bereichs und gibt den Index seines ersten Vorkommens zurück. Wenn das Element nicht gefunden wird, wird -1 zurückgegeben. Im Folgenden finden Sie einen Beispielcode, der zeigt, wie Sie mit der Funktion Array.IndexOf ein Element in einem Array finden.

So überprüfen Sie die Seriennummer und die MAC-Adresse der Festplatte So überprüfen Sie die Seriennummer und die MAC-Adresse der Festplatte Feb 18, 2024 pm 07:45 PM

Seriennummern und MAC-Adressen von Festplatten sind wichtige Kennungen in der Computerhardware und sehr nützlich bei der Verwaltung und Wartung von Computersystemen. In diesem Artikel erfahren Sie, wie Sie die Seriennummer und die MAC-Adresse der Festplatte ermitteln. 1. Finden Sie die Seriennummer der Festplatte. Die Seriennummer der Festplatte ist eine eindeutige Kennung, die vom Festplattenhersteller zur Identifizierung und Nachverfolgung der Festplatte verwendet wird. In verschiedenen Betriebssystemen unterscheidet sich die Methode zum Ermitteln der Seriennummer der Festplatte geringfügig. Windows: Öffnen Sie die Eingabeaufforderung (suchen Sie im Startmenü nach „cmd“), geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste: wmicdisk

Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet Nov 18, 2023 pm 06:17 PM

Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet und ist eine leistungsstarke Dateioperationsfunktion. Es kann den Pfad einer Datei oder eines Verzeichnisses basierend auf einer angegebenen Musterübereinstimmung zurückgeben. Die Syntax der glob()-Funktion lautet wie folgt: glob(pattern, flags) wobei „pattern“ die abzugleichende Musterzeichenfolge darstellt, die ein Platzhalterausdruck sein kann, z. B. *.txt (übereinstimmende Dateien mit der Endung .txt) oder einen bestimmten Dateipfad. Flags ist ein optionaler Parameter, der zur Steuerung der Funktion verwendet wird

Finden Sie den Start- und Endindex von Elementen in einem unsortierten Array in C++ Finden Sie den Start- und Endindex von Elementen in einem unsortierten Array in C++ Aug 29, 2023 am 10:17 AM

In diesem Problem erhalten wir ein Array aar[], das n unsortierte Ganzzahlwerte und einen Ganzzahlwert enthält. Unsere Aufgabe besteht darin, den Start- und Endindex eines Elements in einem unsortierten Array zu finden. Bei Vorkommen eines Elements im Array geben wir „Startindex und Endindex“ zurück (sofern es zweimal oder öfter im Array gefunden wird). „Einzelner Index“ (falls gefunden) „Element existiert nicht“, wenn nicht im Array vorhanden. Nehmen wir ein Beispiel, um das Problem zu verstehen. Beispiel 1Input:arr[]={2,1,5,4,6,2,3},val=2Output:startingindex=0,endingindex=5 erklärt, dass Element 2 zweimal vorkommt , Das erste Mal erscheint bei Index = 0, das zweite Mal

So finden Sie die Seriennummer Ihrer Computerfestplatte So finden Sie die Seriennummer Ihrer Computerfestplatte Feb 20, 2024 am 10:33 AM

So überprüfen Sie die Seriennummer einer Computerfestplatte Mit der Entwicklung der Computertechnologie sind Computerfestplatten zu einem unverzichtbaren Bestandteil unseres Lebens geworden. Ganz gleich, ob Sie wichtige Dateien speichern oder Betriebssysteme und Software installieren, Sie müssen sich dabei auf die Festplatte verlassen können. Das Verständnis einiger grundlegender Informationen über die Computerfestplatte, wie beispielsweise der Seriennummer der Festplatte, kann uns dabei helfen, das Computersystem besser zu verwalten und zu warten. Wie kann man also die Seriennummer der Computerfestplatte überprüfen? In diesem Artikel werden mehrere gängige Methoden vorgestellt. Methode 1: Verwenden Sie das Befehlszeilentool, das mit dem Windows-System geliefert wird

Wie schreibe ich einen Hash-Suchalgorithmus in Python? Wie schreibe ich einen Hash-Suchalgorithmus in Python? Sep 21, 2023 pm 02:37 PM

Wie schreibe ich einen Hash-Suchalgorithmus in Python? Der Hash-Suchalgorithmus, auch Hash-Suchalgorithmus genannt, ist eine Datensuchmethode, die auf einer Hash-Tabelle basiert. Im Vergleich zu herkömmlichen Suchalgorithmen wie der linearen Suche und der binären Suche weist der Hash-Suchalgorithmus eine höhere Sucheffizienz auf. In Python können wir ein Wörterbuch verwenden, um eine Hash-Tabelle zu implementieren und dann eine Hash-Suche zu implementieren. Die Grundidee des Hash-Suchalgorithmus besteht darin, das zu durchsuchende Schlüsselwort über eine Hash-Funktion in einen Indexwert umzuwandeln und es dann anhand des Indexwerts in der Hash-Tabelle zu durchsuchen.

See all articles