Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Python и спортивное программирование
- ===
- 1. Весь код программы выносится в отдельную функцию: локальные переменные работают быстрее глобальных.
- ```python
- def main():
- ...
- main()
- ```
- 2. Используйте встроенные функции: они написаны на C++ и работают быстрее.
- ```python
- x = sum(a)
- for ct in itertools.permutations(a):
- ...
- a.sort()
- ```
- 3. Считывайте данные и пишите их в виртуальные файлы стандартного ввода-вывода
- ```python
- from sys import stdin, stdout
- a, b = (int(x.strip()) for x in stdin)
- stdout.write("{}\n".format(a+b))
- ```
- 4. Увеличьте глубину рекурсии
- ```python
- import sys
- sys.setrecursionlimit(10000000)
- ```
- 5. Осторожно изменяйте иммутабельные объекты: они перестраиваются заново
- ```python
- # Плохо: работает за квадрат
- s = ''
- for x in a:
- s += x
- #Хорошо: работает за линию
- s = ''.join(a)
- ```
- 6. Используйте генераторы вместо for
- ```python
- s = [x.upper() for x in a]
- ```
- 7. Уменьшайте количество вызовов функций: они стоят дорого
- 8. Пользуйтесь профайлером, чтобы увидеть самые долгие места в программе
- ```
- python -m cProfile solution.py
- ```
Add Comment
Please, Sign In to add comment