Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 10.12.2020
Сообщений: 23
1

Заправки

24.12.2020, 17:48. Показов 2333. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В стране N городов, некоторые из которых соединены между собой дорогами. Для того, чтобы проехать по одной дороге, требуется один бак бензина. В каждом городе бак бензина имеет разную стоимость. Вам требуется добраться из первого города в N-ый, потратив как можно меньшее денег. Покупать бензин впрок нельзя.

Входные данные
В первой строке вводится число N (1≤N≤100), в следующей строке идет N чисел, i-ое из которых задает стоимость бензина в i-ом городе (всё это целые числа из диапазона от 0 до 100). Затем идет число M – количество дорог в стране, далее идет описание самих дорог. Каждая дорога задается двумя числами – номерами городов, которые она соединяет. Все дороги двухсторонние (то есть по ним можно ездить как в одну, так и в другую сторону), между двумя городами всегда существует не более одной дороги, не существует дорог, ведущих из города в себя.

Выходные данные
Требуется вывести одно число – суммарную стоимость маршрута или -1, если добраться невозможно.

Примеры
входные данные
5
3 6 1 7 6
8
1 2
5 4
5 1
3 4
5 2
2 4
2 3
3 1
выходные данные
3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2020, 17:48
Ответы с готовыми решениями:

Задача: -: Заправки
Помогите пожалуйста!!! Програма рабочая но когда идет тест, не проходит 1 и 2-й тест с 10 Я уже...

Вычислить и вывести на экран число миль на галлон для каждой заправки
Помогите пожалуйста решить задачу: Водителям небезразличен пробег их автомобилей. Один водитель...

Заправки
Помогите пожалуйста!!! Програма рабочая но когда идет тест, не проходит 1 и 2-й тест с 10 Я уже...

заправки
В стране N городов, некоторые из которых соединены между собой дорогами. Для того, чтобы проехать...

1
319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
24.12.2020, 18:07 2
dinovdim, https://www.e-olymp.com/ru/problems/1388
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <vector>
/***************************************/
constexpr int32_t inf = 0x3F3F3F3F;
/***************************************/
int main(void)
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    /***************************************/
    int32_t n, m, a, b, min_dist, vertex; std::cin >> n;
    /***************************************/   std::vector<std::vector<std::pair<int32_t, int32_t>>>g(n + 1);
    std::vector<bool>colour(n + 1, false);
    std::vector<int32_t>dist(n + 1, inf);
    std::vector<int32_t>cost(n + 1);
    /***************************************/
    for(size_t i = 1; i <= n; ++i) std::cin >> cost[i];
    /***************************************/
    std::cin >> m;
    /***************************************/
    while(m--)
    {
        std::cin >> a >> b;
        g[a].emplace_back(b, cost[a]);
        g[b].emplace_back(a, cost[b]);
    }
    /***************************************/
    min_dist = 0;
    dist[1] = 0;
    vertex = 1;
    /***************************************/
    while(min_dist < inf)
    {
        colour[vertex] = true;
        for(auto&i: g[vertex])
        {
            if(dist[i.first] > dist[vertex] + i.second)
            {
                dist[i.first] = dist[vertex] + i.second;
            }
        }
        min_dist = inf;
        for(size_t edge = 1; edge <= n; ++edge)
        {
            if(!colour[edge] and min_dist > dist[edge])
            {
                vertex = edge;
                min_dist = dist[edge];
            }
        }
    }
    /***************************************/
    dist[n] != inf ? std::cout << dist[n] << std::endl : std::cout << -1 << std::endl;
    /***************************************/
    return EXIT_SUCCESS;
}
0
24.12.2020, 18:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2020, 18:07
Помогаю со студенческими работами здесь

Модель заправки
Есть простая модель автозаправки(5 колонок 2 служащих). При попытке сделать анимацию столкнулся с...

Моделирование заправки
INITIAL X$V_N,0 ; присваивает ячейке V_N значение 0 INITIAL X$V_V,0 ; присваивает ячейке V_V...

Не определяет уровень заправки
Кто может подсказать основные причины когда принтер показывает, что уровень заправки картриджа...

БД Учет заправки картриджей
Делаю базу данных Учет заправки картриджей. Накидал быстренько схему Посмотрите пожалуйста...

Моделирование заправки в GPSS
Пусть это будет АЗС Лукойл или любая другая Но не учтено, что очереди создают не только автомобили...

Станция заправки картриджей
Вечер добрый! озадачился приобритением станции для заправки или рабочего места заправщика, кто как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru