Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Знание или мышление? [закрыт]

Сразу вопрос (пояснение ниже): Как решаются олимпиадные задачи? На каждую задачу уже есть определенный алгоритм и его можно адаптировать к задаче или новые (порой гениальные алгоритмы) придумываются с нуля? На вопрос натолкнула вот эта весьма простая задача. Я бросился решать её в лоб, создав список элементов с ссылками на левый и правый элемент, затем просто просматривал элементы, подсчитывал расстояния и находил минимальное. Около 120 строчек кода. А теперь решение пользователя Delostik #include using namespace std;
int n,d[110],dist1,s,t;
int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>d[i]; d[i]+=d[i-1]; } cin>>s>>t; if(s>t) swap(s,t); dist1=d[t-1]-d[s-1]; cout<

Ответ

Для решения олимпиадных задач -- да и во всяком творческом процессе -- нужно и то, и другое: и интуиция (то есть мышление, способность выдумать новое решение без чётких зацепок в условии), и эрудиция (то есть знание типичных и не вполне типичных задач). При этом эти оба качества не только дополняют, но и помогают друг другу: эрудиция даёт множество других, известных задач, отталкиваясь от которых можно придумать решение данной вам задачи (или свести к ним одну из подзадач); интуиция же помогает увидеть и вычленить общее среди вашей задачи и того, что вам уже известно. Таким образом, эрудиция (знания) -- это строительные блоки вашего решения, интуиция (мышление) же -- комбинирование этих блоков для решения поставленной задачи. Перефразируя классика, "мышление без знаний слепо, знания без мышления мертвы".

Комментариев нет:

Отправить комментарий