#include <iostream>
#include <vector>
using namespace std;
int main() {int m, n, cx, cy;
cin >> m >> n;
vector<int>a;
a.reserve(m*n);
for (int i = 0;i < m;++i) {
for(int j = 0;j < n;++j) {
int v;
cin >> v;
a.push_back(v);
}
int x;
int value = 0;
cin >> x;
for (int k = 0;k < x;++k) {
cin >> cx >> cy;
if((a[cy-1 + (cx-1)*cy]) != -100) {
value += a[cy-1 + (cx-1)*cy];
a[cy-1 + (cx-1)*cy] = -100;
}cout << value;
Объяснение:
Здесь черные кружки - это пункты
Красные линии - это возможные пути перехода из одного пункта в другой
Если от одного пункта к другому нет линии, значит нельзя перейти о чем в таблице свидетельствует пустая клетка на перекрестье пунктов в таблице.
на рисунке 1 показано как найти расстояние от B до С или от С до B (направление не имеет разницы)
Для задачи с маленьким количеством пунктов (как в примере) можно воспользоваться простым перебором
следуя от пункта А к пункту Е, складывая длины переходов, тем самым можно найти наименьший.
Например (путь A-B-C-E)
2+1+2=5
путь A-D-C-E
1+3+2=5
пусть A-C-E
5+2=7
Объяснение: ЕСЛИ СЕ ЭТО ПРАВИЛЬНО НАМ УЧИТЕЛЬ ИНФОРМАТИКИ ОБЪЯСНЯЛ И У НАС ТАКАЯ ЖЕ ТЕТРАДЬНАДЕЮСЬ ЧЕМ ТО
#include <iostream>
#include <vector>
using namespace std;
int main() {int m, n, cx, cy;
cin >> m >> n;
vector<int>a;
a.reserve(m*n);
for (int i = 0;i < m;++i) {
for(int j = 0;j < n;++j) {
int v;
cin >> v;
a.push_back(v);
}
}
int x;
int value = 0;
cin >> x;
for (int k = 0;k < x;++k) {
cin >> cx >> cy;
if((a[cy-1 + (cx-1)*cy]) != -100) {
value += a[cy-1 + (cx-1)*cy];
a[cy-1 + (cx-1)*cy] = -100;
}
}cout << value;
}
Объяснение:
Здесь черные кружки - это пункты
Красные линии - это возможные пути перехода из одного пункта в другой
Если от одного пункта к другому нет линии, значит нельзя перейти о чем в таблице свидетельствует пустая клетка на перекрестье пунктов в таблице.
на рисунке 1 показано как найти расстояние от B до С или от С до B (направление не имеет разницы)
Для задачи с маленьким количеством пунктов (как в примере) можно воспользоваться простым перебором
следуя от пункта А к пункту Е, складывая длины переходов, тем самым можно найти наименьший.
Например (путь A-B-C-E)
2+1+2=5
путь A-D-C-E
1+3+2=5
пусть A-C-E
5+2=7
Объяснение: ЕСЛИ СЕ ЭТО ПРАВИЛЬНО НАМ УЧИТЕЛЬ ИНФОРМАТИКИ ОБЪЯСНЯЛ И У НАС ТАКАЯ ЖЕ ТЕТРАДЬНАДЕЮСЬ ЧЕМ ТО