Если не брать в расчет олимпиадные задачи, то это значит, что либо просто мало опыта в нарешивании, либо плохое понимание теории, или и то, и другое вместе. С первым справиться легко - решайте побольше и почаще, смотрите разбор задач, анализируйте.
Со вторым - для начала вникайте в теорию, разбирайте все доказательства, выводы формул. Далее изучайте простейшие примеры, где наглядно видно применение теории. Ну а потом разбирайте более сложные примеры, и пытайтесь решить их самому. В конце концов научитесь самостоятельно решать.