Сразу вопрос (пояснение ниже): Как решаются олимпиадные задачи? На каждую задачу уже есть определенный алгоритм и его можно адаптировать к задаче или новые (порой гениальные алгоритмы) придумываются с нуля?
На вопрос натолкнула вот эта весьма простая задача. Я бросился решать её в лоб, создав список элементов с ссылками на левый и правый элемент, затем просто просматривал элементы, подсчитывал расстояния и находил минимальное. Около 120 строчек кода.
А теперь решение пользователя Delostik
#include
Для решения олимпиадных задач -- да и во всяком творческом процессе -- нужно и то, и другое: и интуиция (то есть мышление, способность выдумать новое решение без чётких зацепок в условии), и эрудиция (то есть знание типичных и не вполне типичных задач).
При этом эти оба качества не только дополняют, но и помогают друг другу: эрудиция даёт множество других, известных задач, отталкиваясь от которых можно придумать решение данной вам задачи (или свести к ним одну из подзадач); интуиция же помогает увидеть и вычленить общее среди вашей задачи и того, что вам уже известно.
Таким образом, эрудиция (знания) -- это строительные блоки вашего решения, интуиция (мышление) же -- комбинирование этих блоков для решения поставленной задачи.
Перефразируя классика, "мышление без знаний слепо, знания без мышления мертвы".
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<Ответ
среда, 17 октября 2018 г.
Знание или мышление? [закрыт]
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий