|
0 / 0 / 0
Регистрация: 20.10.2022
Сообщений: 16
|
|
Перекладывание колец по заданному правилу05.11.2022, 01:49. Показов 894. Ответов 5
Метки hard, help me, mathematic, олимпиада, олимпиадная задача, олимпиадное программирование, с++, с++ 1 курс, с++ 1курс while, с++ 2 курс, с++ algebra (Все метки)
Очень нужна помощь задачей. Понятия не имею , что с ней делать и как это делать.
Есть n стержней, на которые нанизывают колечки, с написанными на них последовательными целыми числами. Разрешается класть одно кольцо на другое только тогда, когда сумма чисел на двух кольцах является квадратом какого-то числа. Узнать как долго и в какой последовательности это можно делать.
0
|
|
| 05.11.2022, 01:49 | |
|
Ответы с готовыми решениями:
5
Сформировать двумерный массив по заданному правилу правилу Дано N колец сцепленных между собой. Удалить минимальное количество колец так, чтобы получилась цепочка Найти внешние диаметры колец, площадь которых больше площади заданного прямоугольника, и число таких колец |
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
|
||
| 05.11.2022, 01:59 | ||
|
Несколько вопросов.
1) Колечек сколько? Бесконечно? Определенное количество? 2) Числа на колечках начинаются с 1 или как? 3)
1
|
||
|
0 / 0 / 0
Регистрация: 20.10.2022
Сообщений: 16
|
|
| 05.11.2022, 02:09 [ТС] | |
|
1.Ну, в задаче не уточняется, поэтому можем ограничится каким-то числом. Пусть будет 100.
2. Да, : 1, 2 , 3...( ну и в нашем случае до 100) 3. я понял так: мы кладем колечко на стержень, на это кольцо кладем такое, чтобы сумма была квадратом. а вот третье кольцо уже только в сумме со вторым должно давать квадрат. так понял)
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
|
||||||
| 05.11.2022, 22:03 | ||||||
Сообщение было отмечено комі как решение
Решение
Вариант решения (задача не сильно сложная, но некоторое время повозиться пришлось - сначала забыл учесть, что на новый стержень первое кольцо можно положить без учета условия, необходимого для последующих колец):
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.10.2022
Сообщений: 16
|
||||||
| 06.11.2022, 00:41 [ТС] | ||||||
|
Большое спасибо!!! Просто спасли меня. А то на физфаке не хватает времени, чтобы предоставить программированию должное внимание. И так небольшие проблемки с основным материалом)
Добавлено через 22 минуты ой, а у меня проблемка. Я ввел нужные математические библиотеки и она запускает, но в консоли просто пусто #include <iostream> #include <cstdio> #include <math.h> using namespace std; int main() { // кол-во стержней и колец const int n = 10, ring_count = 100; // сначала кольца не лежат на стержне // prev_ring_num - переменная для хранения номера "предыдущего" кольца unsigned ring[ring_count] = {0}, prev_ring_num; for (unsigned i = 1; i <= n; i++) // проходим по стержням { unsigned j; for (j = 1; j <= ring_count; j++) // "перебираем" все кольца if (ring[j - 1] == 0) // если кольцо еще не на стержне { prev_ring_num = j; // запоминаем номер первого "свободного" кольца (не находящегося на стержне) ring[j - 1] = i; // запоминаем номер стержня, на которое положили кольцо break; // выходим из цикла } // проверяем кольца, начиная с первого "свободного" (не находящегося на стержне) кольца for (j = prev_ring_num + 1; j <= ring_count; j++) if (ring[j - 1] == 0) // если кольцо еще не на стержне { double tmp = sqrt(j + prev_ring_num); // находим корень из суммы значений на кольцах if (tmp == int(tmp)) // если корень - целое число { prev_ring_num = j; // запоминаем номер нового кольца ring[j - 1] = i; // запоминаем номер стержня, на которое положили кольцо } } } // вывод результатов; всего стержней - n, колец - ring_count // счетчик колец на стержнях и общее кол-во колец на стержнях unsigned count[n] = {0}, total = 0; for (unsigned i = 1; i <= n; i++) // проходим по стержням { // выводим номер стержня i for (unsigned j = 1; j <= ring_count; j++) // "перебираем" кольца if (ring[j - 1] == i) // если кольцо на i-ом стержне { // выводим номер кольца (значение на нем) j // считаем (и выводим, если нужно), сколько колец на стержне count[i - 1]++; } // считаем общее кол-во колец на стержнях total += count[i - 1]; } // выводим общее кол-во колец total на n стержнях } Добавлено через 31 секунду
все , разобрался , я же про выводы забыл)))
0
|
||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
|
|||||||||||||||||
| 06.11.2022, 04:59 | |||||||||||||||||
|
Если нужно, "оригинальный вывод в билдере через Memo":
count[i - 1] нужно выводить примерно там, где считается total (строка №50 кода). Короче, посмотри исходный код в этом посте и сделай вывод по той же логике (в том же порядке по крайней мере). Я с "консолью" не очень дружу, так как ей не пользуюсь от слова совсем. Добавлено через 14 минут Возможно, "код алгоритма" (до вывода) можно (теоретически?) упростить (там есть достаточно "повторяющегося" кода), но я не стал сильно мудрить. Перфекционизм, конечно, дело хорошее, но в разумных пределах. Добавлено через 1 час 4 минуты Хотя... Немного причесал "код алгоритма":
В строке
1
|
|||||||||||||||||
| 06.11.2022, 04:59 | |
|
Помогаю со студенческими работами здесь
6
Перекладывание гирь Задача на перекладывание кубиков Преобразовать матрицу по заданному правилу
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|