"Лучше поздно чем никогда" (c) Егор.
Сегодня, 8 декабря, состоялся очередной СРМ.
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 144 |
| 5 | Um_nik | 141 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 134 |
| 9 | maroonrk | 133 |
| 10 | qwexd | 130 |
| Название |
|---|



P.S. под chrome ссылка не хотелось вставляться ни какими методами(
Пусть g = gcd(N, M). Ответом будет g*(N/g-1)/2.
Что это значит: сокращаем отрезок [0, N-1] в g раз. Тогда каждый элемент получившегося отрезка будет входить в сумму w(i). Считаем сумму элементов этого отрезка - числа от 0 до N/g-1: s = N/g*(N/g-1)/2. Домножаем на g, чтобы получить реальные значения из первоначального отрезка, и берем среднее. получается как раз g*(N/g-1)/2.
Надеюсь, понятно объяснил)
рассмотрим последовательность ai = (i * N)modM.
Взяв i = N * M / D получаем что a0 = ai = 0, а значит последовательность имеет данный период (можно доказать что он минимален). При этом значения ai должны делиться на D, поскольку они являются линейной комбинацией N и M. Используя расширенный алгоритм Евклида можно доказать что последовательность пробегает ВСЕ числа меньшие M и делящиеся на D, то есть 0, D, 2D, ... M - D. Среднее у этих чисел - (M - D) / 2, вот и ответ.
550ка немного хмурная.
Если понять условие она простая. Но сначала надо понять условие и нигде не скосячить (что я успешно провалил, неверно посортив слова).
ans = abs( N - gcd( N, M ) ) / 2.00 ???
Waiting time of starship is a divisor of D, because it is always linear combination of N and M.
Assume waiting time of i-th starship is ai.
ai + 1 = ( - i * M)modN, a0 = aN = 0, , so the sequence is linear and has a period. The answer is an average value of one period of the sequence.
D = x * N + y * M for some x, y (extended euclidian algorithm ), so ay = N - D, hence every k * D , 0 < = k * D < N is found in the sequence.
The answer is average of k * D where 0 < = k * D < N which is (N - D) / 2.0
Or Is there any other approach to this question?
check this link & its 2nd page!