|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
Квадратная страна08.01.2010, 15:57. Показов 7103. Ответов 10
Метки нет (Все метки)
http://acm.timus.ru/problem.as... &locale=ru
В одном квадратном государстве жили квадратные люди. И всё остальное в этом государстве было тоже квадратное. Так, Квадратная Дума приняла Квадратный Закон о земле. Согласно этому закону, любой житель государства имел право приобрести землю. Земля продавалась, естественно, квадратными участками. Длина стороны каждого участка выражалась натуральным числом метров. Приобретая участок земли со стороной a метров, покупатель платил a2 квадриков (местная валюта) и получал одно квадратное свидетельство о праве собственности на этот участок. Один житель этого государства решил вложить все свои N квадриков без остатка в покупку земли. Это безусловно можно было сделать, приобретя участки размером 1 × 1 метр. Но этот житель потребовал от агентства недвижимости минимизации количества покупаемых участков. «Так мне будет легче общаться с Квадратной Налоговой Инспекцией», — сказал он. Сделка состоялась. Найдите, какое количество квадратных свидетельств он получил. Исходные данные В единственной строке стоит положительное число N ≤ 60 000 — число квадриков, которое было у жителя. Результат В единственной строке стоит число свидетельств, полученных в результате сделки. Пример: INPUT 344 OUTPUT 3
0
|
|
| 08.01.2010, 15:57 | |
|
Ответы с готовыми решениями:
10
создание структуру СТРАНА. добавление и удаление элементов из структуры
C++ задача. C 2009 года наша страна празднует день программиста 13 сентября |
| 08.01.2010, 16:06 | |
|
Не по теме: сейчас камп будет занят, я пока поразмышляю над задачей, напишу потом
0
|
|
|
UNIX-way
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
|
|||||||||||
| 08.01.2010, 16:22 | |||||||||||
|
Интересная задача.
Алгоритм решения
0)переменной, в которой будет число участков (у меня - k), присваиваем ноль
1)берём квадратный корень из числа имеющихся квадриков 2)округляем результат вниз до целого 3)возводим результат в квадрат 4)отнимаем результат от числа квадриков 5)k++; 6)повторяем п.п. 1-5 до тех пор, пока деньги не кончатся Код программы. Вариант с While
Код программы. Вариант с For
В программе я использовал консольный ввод/вывод. Если нужно из файла - переделывайте. Работоспособность кода проверена на приведённом в первом посте примере и для случая когда квадрик только 1. Использовал DevCPP 4.9.9.2
1
|
|||||||||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 08.01.2010, 16:58 [ТС] | |
|
Delphin_KKC, то что программа компилируется - это НЕ ЗНАЧИТ что задача правильно решена.
Ты забываешь что это олимпиадные задачи. А значит всегда есть над чем подумать. А именно - приведенный тобой алгоритм находит какое-то разбиение на квадраты. А нужно найти разбиение чтобы число квадратов было минимально. Добавлено через 3 минуты Вот тебе тест: N=18 Правильный ответ: 2 ( 9+9 ) Твоя программа выводит 3 ( видимо 16+1+1 )
1
|
|
|
UNIX-way
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
|
||||
| 08.01.2010, 17:53 | ||||
|
По свободе подумаю над другими алгоритмами. Действительно 16+1+1.
1
|
||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
| 08.01.2010, 18:18 [ТС] | ||||||
|
Вспомнил - что-то подобное я уже решал.
Момент такой: Любое натуральное N может быть представлено в виде суммы квадратов не более чем 4-ех слагаемых. То есть в худшем случае будет 4 участка. Значит задача резко упрощается. 1) Проверить N - это A0^2 2) Проверить что N = A0^2+A1^2, причем A0>=A1 3) Проверить что N= A0^2+A1^2+A2^2, причем A0>=A1>=A2 4) Проверить - но можно и не проверять N = A0^2+A1^2+A2^2+A3^2, причем A0>=A1>=A2>=A3 Какой вариант нашли раньше - такой ответ и будет. Добавлено через 24 минуты Все - сдал ![]() Программа
2
|
||||||
|
║XLR8║
|
|
| 08.01.2010, 21:28 | |
|
odip, хорошо что вы до теста 18 сами дошли, и то что програма рабочая - тоже хорошо, но можно поподробнее, именно тот факт что любое натуральное чисо можно представить в виде сумы не более чем 4-ех слагаемых?
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 08.01.2010, 21:38 [ТС] | |
|
Что за тест 18 ?
Этот факт упоминался в какой-то олимпиадной задаче. Я проверял от 1 до INT_MAX - не врут
1
|
|
|
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
|
|
| 08.01.2010, 23:34 | |
|
То, что Вы ищете есть не что иное, как знаменитая теорема Лагранжа о четырёх квадратах.
2
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 08.01.2010, 23:55 [ТС] | |
|
Буду знать как называется
![]() Так вот для кубов: Каждое натуральное число представимо в виде суммы не более 8 кубов чисел.
0
|
|
|
b4990
|
||||||
| 25.09.2010, 18:36 | ||||||
|
Извиняюсь за некрофильство, но возможно кому-то будет интересно.
Без знания теоремы Лагранджа задачу можно решить динамическим программированием, например так
|
||||||
| 25.09.2010, 18:36 | |
|
Помогаю со студенческими работами здесь
11
нужно чтоб нашлась страна и все данные об этой стране вывелись в таблицу... Свойства и методы классов Ученик, Учитель, Школа, Экзамен, Турнир, Урок, Страна, Браузер Реализовать односвязный список данных вида "Страна, город, количество населения" Разработать класс "Машина" с полями: марка, страна-производитель, максимальная скорость, объём двигателя игра "туманная страна" на с++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|