• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Najmniejsza wartość z zakresu

Object Storage Arubacloud
0 głosów
63 wizyt
pytanie zadane 7 listopada 2020 w C i C++ przez gryzedywany Użytkownik (510 p.)
edycja 7 listopada 2020 przez gryzedywany

Hejka potrzebuję pomocy z napisaniem takiego programu, ma on zwrócić wartość najmniejszą z podanego zakresu (na wejściu dostaje tablicę z liczbami całkowitym dodatnimi oraz zakresy). Na początku rozwiązałam to w ten sposób, za każdym razem gdy dostawałam nowy zakres szukałam w nim najmniejszej wartości. Jednak przy dużych liczbach przestaje być to optymalne :/ chciałabym to zrobić szybciej. Kolejny mój pomysł to wypełnienie tablicy/wektora I W niej zapisywać najmniejszą wartoś z danego zakresu. Potem wystarczyłoby wyświetlić. Ale nie wiem czy przyśpieszyłoby to znacznie algorytm.

Co myślicie? Macie jakieś pomysły? Będę bardzo wdzięczna za każdą pomoc❤

Dodaje jeszcze kod 

#include<bits/stdc++.h>
using namespace std;
int n,q,a,b; //ilosc liczb w zakresie, liczba zapytan, a b zakres
vector<int> v;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie();
    cout.tie();
    cin>>n>>q; 

    for(int i=0; i<n; i++){
        cin>>a;
        v.push_back(a);
    }
    int najm;
    for(int i=0; i<q; i++){
        cin>>a>>b;
        a--, b--;  //zmniejszam o jeden ze wzgledu na to ze a i b minimalnie moga byc                     jedynka 
                     // wiec dla a==1 chodzi liczbe ktora jest na pozycji 0 
        najm=v[a];
        a++;
        while(a<=b){
            if(v[a]<najm) najm=v[a];
                a++;
        }
        cout<<najm<<endl;
    }
 
 
}

 

1 odpowiedź

0 głosów
odpowiedź 7 listopada 2020 przez tangarr Mędrzec (154,860 p.)
wybrane 4 stycznia 2021 przez gryzedywany
 
Najlepsza
Poszukałem chwilę i znalazłem algorytm rozwiązujący ten problem.

Algorytm RMQ - Range Minimum Query

http://io.8lo.pl/articles/rmq_1_1.htm

Podobne pytania

0 głosów
3 odpowiedzi 630 wizyt
pytanie zadane 18 października 2020 w C i C++ przez Wolv63 Użytkownik (630 p.)
0 głosów
1 odpowiedź 131 wizyt
pytanie zadane 10 marca 2020 w C i C++ przez Programmingc100 Bywalec (2,620 p.)
0 głosów
2 odpowiedzi 2,550 wizyt
pytanie zadane 7 listopada 2018 w C i C++ przez ola123 Nowicjusz (180 p.)

92,580 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,965 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...