Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310

Определить, какое количество клеток шахматного поля не заняты и не находятся под боем

04.05.2019, 23:13. Показов 8612. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано шахматное поле n×n. На поле расположено m ладей. Определить, какое количество клеток не заняты и не находятся под боем.
Мое решение такое:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
m = int(input('количество ладей: '))
n = int(input('размер поля: '))
my_lads = range(m)
for i in my_lads:
    x = int(input('координата x: '))
    y = int(input('координата y: '))
    if m=n and m>0 and n>0:
        print('количество незанятых клеток:' n**2-m)
        print('Все клетки находятся под боем')
    if m < n and and m>0 and n>0:
        print('количество незанятых клеток:' )
    else:
        print('Подсчитать невозможно')
Помогите написать для случая m<n. Заранее большое спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.05.2019, 23:13
Ответы с готовыми решениями:

Определить, какое количество клеток шахматного поля не заняты и не находятся под боем коней
Дано шахматное поле n×n. На поле расположено m коней. Определить, какое количество клеток не заняты и не находятся под боем. Мне...

Определить, какое количество клеток шахматного поля не заняты и не находятся под боем
Дано шахматное поле n×n. На поле расположено m коней. Определить, какое количество клеток не заняты и не находятся под боем. Пример...

Определить, сколько клеток находится под боем шахматного коня
Прошу прощения за тему, теперь не могу исправить. http://acm.timus.ru/problem.aspx?space=1&amp;num=1197 Задание на тимусе. Условие...

9
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 08:47
Лучший ответ Сообщение было отмечено catauggie как решение

Решение

catauggie, Наверняка можно как-то поэлегантнее, но мне пришел в голову такой вариант. Предполагается, что все вводится корректно
Python
1
2
3
4
5
6
7
8
9
10
11
12
m = int(input('количество ладей: '))
n = int(input('размер поля: '))
xs = [x for x in range(n)]
ys = [x for x in range(n)]
for i in range(m):
    x = int(input(f'координата x{i}: '))
    y = int(input(f'координата y{i}: '))
    if x in xs:
        xs.remove(x)
    if y in ys:
        ys.remove(y)
print(len(xs) * len(ys))
1
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 09:22  [ТС]
Для незанятых клеток такой код подойдет?
Python
1
print(n**2-m)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 09:31
Цитата Сообщение от catauggie Посмотреть сообщение
Для незанятых клеток такой код подойдет?
Конечно! Я не стал отдельно выводить, т.к. занятые и "простреливаемые" суть одно и то же.
1
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 19:32  [ТС]
А как быть для случая с конями?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 19:40
Тут сложнее. Нужно учитывать границы поля. А так алгоритм можно использовать тот же. В матрице заменять какое-нибудь дефолтное значение на другое и считать. Если не срочно, могу попробовать написать чуть позже.
0
3 / 3 / 0
Регистрация: 06.05.2019
Сообщений: 95
07.05.2019, 23:02
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Конечно!
Python
1
2
3
4
5
6
7
8
9
10
11
12
m = int(input('количество ладей: '))
n = int(input('размер поля: '))
xs = [x for x in range(n)]
ys = [x for x in range(n)]
for i in range(m):
    x = int(input('x{i}: '.format(i=i)))
    y = int(input('y{i}: '.format(i=i)))
    if x in xs:
        xs.remove(x)
    if y in ys:
        ys.remove(y)
print(len(xs) * len(ys))
Указывает, что ненулевой код возврата.
Миниатюры
Определить, какое количество клеток шахматного поля не заняты и не находятся под боем  
0
0 / 0 / 0
Регистрация: 08.05.2019
Сообщений: 1
08.05.2019, 11:39
Для ладей решение простое в одну строчку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
x_set =set()
y_set =set()
 
n = int(raw_input())
m = int(raw_input())
 
for i in range(1, int(m) + 1):
  x, y = map(int, raw_input().split())
  x_set.add(x)
  y_set.add(y)
 
free_frame = n**2 - n*len(x_set) - n*len(y_set) + len(x_set)*len(y_set)
print str(free_frame)
у меня не получилось пройти аналогичную задачу с ферзями перебором всех клеток, вроде норм но не проходило из-за долгого времи выполнения:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
f_x =list()
f_y =list()
 
n, m = map(int, raw_input().split())
 
for i in range(int(m)):
  x, y = map(int, raw_input().split())
  f_x.append(x)
  f_y.append(y)
 
f = n **2
for x in range(1, n + 1):
  for y in range(1, n + 1):
     for i in range(m):
         if x == f_x[i] or y == f_y[i] or x - f_x[i] == f_y[i] - y or x - f_x[i] == y - f_y[i]:
           f -= 1 #Клетка под боем если: ферьзь на верт или горизонтали или на одной из диагонали
           break
     if x == f_x[i]:     #попытка ускорить проход 
       f = f - (n - y)    #скипаньем прохода по вертикали
       break
print f
А вот интиресно как решить задачу Камни?
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
09.05.2019, 09:13  [ТС]
Le_Lik , я так написал код:
Игра в камни
но мне выдавало вердикт RE. Интересно, хоть у кого-то вердикт OK был?
0
3 / 3 / 0
Регистрация: 06.05.2019
Сообщений: 95
09.05.2019, 22:07
Цитата Сообщение от catauggie Посмотреть сообщение
но мне выдавало вердикт RE. Интересно, хоть у кого-то вердикт OK был?
К сожалению нет, не решил ни одну задачу. Везде вердикт RE.

Добавлено через 54 секунды
Цитата Сообщение от Salamani Посмотреть сообщение
не решил ни одну задачу
По программированию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2019, 22:07
Помогаю со студенческими работами здесь

Сколько клеток находится под боем шахматного коня
есть задача. http://acm.timus.ru/problem.aspx?space=1&amp;num=1197 написал решение: #include &lt;iostream&gt; using namespace std; int...

Определить количество пустых полей доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...

Определить количество пустых полей доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...

Математика: определить количество пустых полей доски, которые находятся под боем
Нужна помощь! На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски,...

Определить количество пустых полей шахматной доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru