Разделы презентаций


Олимпиадное программирование

Содержание

Дистанционное занятие №1Задачи:Тройки чиселПредставление чиселКубическое уравнение Три сынаОчередь в банк2018, январь

Слайды и текст этой презентации

Слайд 1Олимпиадное программирование

Григорьева Анастасия
2018, январь

Олимпиадное программирование Григорьева Анастасия2018, январь

Слайд 2Дистанционное занятие №1

Задачи:
Тройки чисел
Представление чисел
Кубическое уравнение
Три сына
Очередь в банк
2018,

январь

Дистанционное занятие №1Задачи:Тройки чиселПредставление чиселКубическое уравнение Три сынаОчередь в банк2018, январь

Слайд 3Тройки чисел
2018, январь

Тройки чисел2018, январь

Слайд 4Тройки чисел. Примеры.
2018, январь

Тройки чисел. Примеры.2018, январь

Слайд 5Решение
Возвести в квадрат
Но не просто так, а перенеся корень из

b в правую часть

a = b + 2sqrt(bp) +

p
Поскольку a,b и p – целые числа, то и sqrt(bp) – целое число, т.е. b равно произведению p и квадрата некоторого целого числа

b = pn^2, a = p(n-1)^2

Т.о. для каждого p из отрезка [N,M] требуется найти все такие n, что
N<= p(n-1)^2 < pn^2 <= M

2018, январь

РешениеВозвести в квадратНо не просто так, а перенеся корень из b в правую часть a = b

Слайд 6Оптимизируем
Разделим на p все части и извлечем корень

Sqrt(N/p)

< n

количество целых чисел на отрезке [Sqrt(N/p);Sqrt(M/p)]

Проверяем на простоту каждое число от N до M и находим кол-во решений для каждого из найденных простых чисел указанным выше способом

2018, январь

ОптимизируемРазделим на p все части и извлечем кореньSqrt(N/p)

Слайд 7Представление чисел
Мат-мех 2015

Представление чиселМат-мех 2015

Слайд 8Решение
Мат-мех 2015

РешениеМат-мех 2015

Слайд 9Решение
Мат-мех 2015

РешениеМат-мех 2015

Слайд 10Оптимизация
Мат-мех 2015
Совет: при такой реализации sqrt(N) вычисляется при каждой
Итерации

цикла while. Этого можно избежать, если заранее
вычислить эту величину

и использовать в условии цикла её значение.
ОптимизацияМат-мех 2015Совет: при такой реализации sqrt(N) вычисляется при каждой Итерации цикла while. Этого можно избежать, если заранее

Слайд 11Кубическое уравнение
Мат-мех 2015

Кубическое уравнениеМат-мех 2015

Слайд 12Решение
Мат-мех 2015

РешениеМат-мех 2015

Слайд 13Три сына
2018, январь

Три сына2018, январь

Слайд 142018, январь

2018, январь

Слайд 15Решение
2018, январь

Решение2018, январь

Слайд 162018, январь

2018, январь

Слайд 17Оптимизации
2018, январь

Оптимизации2018, январь

Слайд 18Код на питоне
n = int (input())
b = n//3 a = b-1 if

n%3 ==2 b + = 1 c = n-a -

b print (a, b, c)

2018, январь

Код на питонеn = int (input())b = n//3 a = b-1 if n%3 ==2   b

Слайд 19Очередь в банк
2018, январь

Очередь в банк2018, январь

Слайд 202018, январь

2018, январь

Слайд 21Тесты
2018, январь

Тесты2018, январь

Слайд 22Упрощенное условие
2018, январь

Упрощенное условие2018, январь

Слайд 23Решение на 40 баллов
2018, январь

Решение на 40 баллов2018, январь

Слайд 24Решение на 100 баллов
2018, январь

Решение на 100 баллов2018, январь

Слайд 25Решение на 100 баллов
2018, январь

Решение на 100 баллов2018, январь

Слайд 26Код на питоне
2018, январь
input = open('longqueue.in', 'r')
output = open('longqueue.out', 'w')
n,x=input.readline().split()
x=x.rstrip()
a=input.readline().split()
n=int(n)
a[n-1]=a[n-1].rstrip()
x=int(x)
b=[0]
for

i in range(1,n):
    if int(a[i-1])>=x:
        b.append(b[i-1]+1)
 

  else:
        b.append(b[i-1])
k=int(input.readline().rstrip())
smesh=0
for i in range(k):
    rab=input.readline()
    rab=rab.rstrip()
    if rab[0]=='2':
        smesh+=1
    elif rab[0]=='1':
        e=int(rab[2:])
        if int(a[-1])>=x:
            b.append(b[-1]+1)
        else:
            b.append(b[-1])
        a.append(e)
    else:
        otv=b[int(rab[2:])+smesh]-b[smesh]
        output.write(str(otv)+'\n')

f = open ("longqueue.in", "r")
n, x = [int(x) for x in f.readline().split()]
bb = [int(x) for x in f.readline().split()]
 
d = 0
a = [0]
for b in bb:
    if b >= x:
        d += 1
    a.append ( d)
m_count = int (f.readline()) 
result = []
 
h = 0  # head person position
 
for i in range (m_count):
    m = f.readline().split()
    if m[0] == '1':
        if int (m[1]) >= x:
            a.append(a[-1] + 1)
        else:
            a.append(a[-1])
    elif m[0] == '2':
        h  = h + 1
       
    elif m[0] == '3':
        r = a[int (m[1]) + h]  - a[h]
        result.append(r)
        print (r)
       
f.close
       
with open("longqueue.out", "w") as f:  
    for r in result:
        f.write(str(r)+'\n')


Слайд 27Код на С++
2018, январь

Код на С++2018, январь

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика