/predownloaded/63/97/6397cccfc04e8d80e31a340ec181d49ef6d31c46.png
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 164 |
1 | maomao90 | 164 |
3 | Um_nik | 163 |
4 | atcoder_official | 160 |
5 | -is-this-fft- | 158 |
6 | adamant | 157 |
6 | awoo | 157 |
8 | TheScrasse | 154 |
8 | nor | 154 |
10 | djm03178 | 153 |
/predownloaded/63/97/6397cccfc04e8d80e31a340ec181d49ef6d31c46.png
Условие: У Вовы есть гистограмма A. У A[i] = (h[i], w[i]); у прямоугольника A[i] есть высота h[i], и ширина w[i]. Он хочет достроить её до прямоугольника с минимальной площадью. Какова площадь достроенной части? 1 <= n <= 10 ^ 5 1 <= h[i], w[i] <= 10 ^ 18 Решение должно быть по асимптотике O(n).
Решение (моё): Представим каждый прямоугольник в виде клеток. Тогда будет удобно считать их площадь. Тогда получается простая формула смотри в прикреплённом файле. Решение (код) Python.
res = 0 m = max(h) for i in range(n): res += w[i] * (m — h[i])
Решение (код) С++.
int res; int m = max(h); for (int i = 0; i < n; ++i){ res = res + w[i] * (m — h[i]); } Пишите свои решения в комментах! Жду! Формула: /predownloaded/47/c9/47c982d55d175c55634c5778efe1ee2fc55e8973.png
Spring is the time for serious Olympiads, but I will help you prepare for them!!! Fly into the contest, it is compiled only from the best tasks of all time! I'm waiting for everyone! Respect to whoever takes the 1st place ;) .
https://codeforces.me/contestInvitation/7b43f1bdfe15913f2ead227129417cbfa2fa08ee
/> フ | ノ ノ| /` ミ_xノ / | / ヽ ノ │ | | |
/ ̄| | | | | ( ̄ヽ___ヽ_ヽ__ヽ \二つ
Весна, пора серьёзных олимпиад, но я помогу вам к ним подготовится!!! Залетайте на контест, он собран только из лучших задач за всё время! Всех жду! Кто займёт 1-е место тому респект ;) .
https://codeforces.me/contestInvitation/7b43f1bdfe15913f2ead227129417cbfa2fa08ee
Кидаю ссылку на классный контест, собрал его сам из архива(только лучшие задачи). https://codeforces.me/contestInvitation/105f2606fc9fa25af353bb8a2334d0c7e529ba70
Тимофей играет в игру:
У него есть последовательность: t[n] = 1 Если t[i] = 0, то t[i + k] = 1 и t[i — 1] = 1. А какое число будет на t[0] месте?
Входные данные: (1 <= n <= 10 ** 20 — 1) (1 <= k <= n) Обратите внимание на ограничения! Решение:
n = int(input()) k = int(input()) print(0 if not n % (k — 1) else 1)
a = list(map(int, input().split())) l, r = 0, len(a) — 1 while(r — l >= 1): if(a[l] > a[l + 1]): a[l + 1], a[l] = a[l], a[l + 1] if(a[r] > a[r — 1]): a[r — 1], a[r] = a[r], a[r — 1] l += 1 r -= 1 print(max(a[l], a[r]))
Название |
---|