BG Development


  Reply to this topicStart new topicStart Poll

> задача максимална печалба
rumen_dimov
Публикувано на: 08-05-2020, 17:29
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 08.05.20



Здравейте, търся решение на следния проблем.
Даден е списък от списъци на цели числа и число n.
Целите числа в списъците са цени на акции, а n е цената, на която всяка акция се продава по-късно.
Можете да закупите k-та акция от списък, само ако първо купите 0 - k-1 акциите от списъка.
Можете да купувате и от други списъци.
Решението трябва да намери максималната печалба и всички бройки вариации на акциите, необходими за постигането й.
Например:
Списък от списъци: [[7 3 11 9 10], [1 2 3 4 10 16 10 4 16]]
N = 10
Резултат:
максимална печалба: 40
колко акции да закупите: 6,7,8,9,10,11,13
някои от вариации на акциите от резултата:
1,2,3,4,7,3 е с 6 акции => 1 + 2 + 3 + 4 + 7 + 3 = 20, 6 * N - 20 = 60 - 20 = 40
1,2,3,4,7,3,10 е със 7 акции => 1 + 2 + 3 + 4 + 7 + 3 + 10 = 30, 7 * N - 30 = 40

Благодаря прдварително!
PMEmail Poster
Top
relax4o
Публикувано на: 08-05-2020, 17:34
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2555
Регистриран на: 04.04.07



Стана ли време за курсови работи, пак.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
rumen_dimov
Публикувано на: 08-05-2020, 17:50
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 08.05.20



Това си е като за олимпиада. От 3 дена го мисля вече.
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 08-05-2020, 17:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3791
Регистриран на: 21.02.18



не разбрах условието, много е увъртяно


--------------------
https://ncase.me/trust-bg/
---
Misanthropy is the general hatred, dislike, distrust or contempt of the human species or human nature. A misanthrope or misanthropist is someone who holds such views or feelings.
---
INTJ’s are good at being very good at everything
---
"Чувството за вина дето искаш да ни го вмениш, може да си го навиеш на руло и да си го пъхнеш отзад." - stewe
PMEmail PosterUsers Website
Top
Dr.Who
Публикувано на: 08-05-2020, 20:52
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 389
Регистриран на: 25.05.14



Пил съм 5 ракии - затова и пиша.
Общия максумум е Sum[Max[всеки списък]]
понеже n e глобално за всички списъци, то алгоритъм за макс на всеки един списък
ще ти даде и общия максимум на сумата от максимумите от всички списъци.
Т.е. свеждаме задачата за намиране на максимум за n и списък [a,b,...].
най-тъпото решение е O(n) : търсиш Max(Сума(n-цена[i]))

Много лесна задача. Остявям Гоблина да напише кода на Ръст.

Това мнение е било редактирано от Dr.Who на 08-05-2020, 20:53
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 08-05-2020, 20:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3791
Регистриран на: 21.02.18



Май разбрах:

CODE

fn main() {
   let sell_price = 10;
   let shares = vec![
       vec![7, 3, 11, 9, 10],
       vec![1, 2, 3, 4, 10, 16, 10, 4, 16]
   ];

   let mut list_to_buy = vec![];
   for list in shares.iter() {
       let mut profit = 0;
       let mut max_profit = 0;
       let mut max_idx = 0;

       for (idx, &cost) in list.iter().enumerate() {
           profit = profit + sell_price - cost;
           if profit > max_profit {
               max_profit = profit;
               max_idx = idx;
           }
       }

       list_to_buy.push((max_idx, max_profit));
   }

   let total_profit: i32 = list_to_buy.iter().map(|(_, p)| *p).sum();
   println!("Max profit: {}", total_profit);

   for (idx, (num, _)) in list_to_buy.iter().enumerate() {
       let to_buy = &shares[idx][0..=*num];
       println!("{:?}", to_buy);
   }
}



Извежда:

CODE
Max profit: 40
[7, 3]
[1, 2, 3, 4]


За теб оставям да си добавиш намирането на всички варианти


--------------------
https://ncase.me/trust-bg/
---
Misanthropy is the general hatred, dislike, distrust or contempt of the human species or human nature. A misanthrope or misanthropist is someone who holds such views or feelings.
---
INTJ’s are good at being very good at everything
---
"Чувството за вина дето искаш да ни го вмениш, може да си го навиеш на руло и да си го пъхнеш отзад." - stewe
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0