Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1
  1  Ахмедов Умедчон, 26 марта 2026 г. 8:10:14
     #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll n,i=0,j=0; cin>>n; vector <vector <ll> > dp(n, vector <ll> (n)); while (i<n && j<n){ cin>>dp[i][j]; i++; j++; } for (int i=1; i<n; i++){ for (int j=i; j<n; j++){ ll x=j-i; if (i%2!=0){ dp[j][x]=max(dp[j-1][x],dp[j][x+1]); } else { dp[j][x]=min(dp[j-1][x],dp[j][x+1]); } } } cout<<dp[n-1][0]; return 0; }
  2  Ахмедов Умедчон, 25 марта 2026 г. 14:27:27
     Я вообще не понял суть задачи. Нужно вывести любое число до которого может добраться игрок 1???
  3  Васильев Владимир Сергеевич, 31 декабря 2025 г. 8:01:30
     Спасибо Паршину Алексею Викторовичу :) Так то, совсем не очевидно из условия, что "первый ход всегда делает первый игрок". Я вот думал, что "первый" - это который первым добрался до диагонали. Это практически черным по белому ведь в условии прописано... "выигрыш первого игрока равен значению числа, написанного в клетке с остановившейся пешкой". ИМХО стоит дописать в условие что такое первый игрок...
  4  СтартКодинг Администратор, 01 декабря 2025 г. 9:22:24
     #include <bits/stdc++.h> #define ll long long using namespace std; int main() { ll n;cin >> n; int a[n][n]; for(ll i=0;i<n;i++){ for(ll j=0;j<n;j++){ a[i][j]=0; } } for(ll i=0;i<n;i++){ ll x;cin >> x; a[i][i] = x; } if(n%2==0){ for(ll i=1;i<n;i++){ if(i%2==0){ for(ll m=0,j=i;j<n;j++, m++){ a[j][m] = min(a[j-1][m], a[j][m+1]); } }else{ for(ll m=0,j=i;j<n;j++, m++){ a[j][m] = max(a[j-1][m], a[j][m+1]); } } } }else{ for(ll i=1;i<n;i++){ if(i%2==0){ for(ll m=0,j=i;j<n;j++, m++){ a[j][m] = max(a[j-1][m], a[j][m+1]); } }else{ for(ll m=0,j=i;j<n;j++, m++){ a[j][m] = min(a[j-1][m], a[j][m+1]); } }
  5  Паршин Константин Андреевич, 01 апреля 2025 г. 17:14:10
     я сделал код а почему шахматы не запускаются
  6  Айтбатыр, 03 декабря 2024 г. 8:56:54
     Здесь понять условие тяжелее, чем решить
  7  Осипов Никита Сергеевич, 03 июля 2024 г. 9:06:19
     Если у вас не проходит первый тест, проверьте свой код на n = 1
  8  Караулов Иван Дмитриевич, 27 октября 2023 г. 9:56:05
     ПОЖАЛУЙСТА ПЕРЕДЕЛАЙТЕ УСЛОВИЕ, вообще не понятно, что нужно делать если клеток нечет, и в начале не понятно что от меня требуется, комменты говорят о том же люди в недоумении)
  9  Ачилов Фазлиддин, 02 октября 2023 г. 13:54:02
     пж дайте тесты (хотя бы 3) я хочу проверить свой код
  10  Паршин Алексей Викторович, 17 апреля 2023 г. 17:11:42
     В задаче первый ход всегда делает первый игрок
  11  Измайлович Денис Александрович, 27 июля 2020 г. 14:44:00
     Если вы уверены, что ваш код правильный, то проверьте тест: (1 4) = 4
  12  Зараник Богдан Юрьевич, 16 июля 2020 г. 18:36:58
     МИРЖАХОН КАЙИМОВ МИРТЕМИРОВИЧ, в Вашем тесте(3 1 2 3) ответ: 2.
  13  МИРЖАХОН КАЙИМОВ МИРТЕМИРОВИЧ, 29 марта 2020 г. 13:59:36
     3 1 2 3 ??? плз
  14  АЩщщ, 13 марта 2020 г. 13:14:18
     " На самом деле, это не динамика ",весело.Интересно почему админ закинул эту задачу в раздел "Динамическое программирование"...(Я не отрицаю существование не динамических решений ,но динамика по подотрезкам здесь очевидна)
  15  Низамов Айнур Мулланурович, 14 января 2020 г. 22:59:45
     На самом деле, это не динамика, надо просто рассмотреть 2 случая: когда n четное и нечетное. Когда n четное - вывести просто максимум из (сами разберетесь), во втором посложнее - вывести минимум из максимума (чего то и чего то), и чего то). Разберитесь, займет максимум 5-10 минут времени :))
  16  Пухов Кирилл Викторович, 10 декабря 2019 г. 13:49:50
     Самое непонятное условие. Переделайте его, пожалуйста.
  17  Яковлев Илья Игоревич, 05 декабря 2019 г. 23:14:54
     Здесь нет динамического программирования, просто рассмотрите примеры подобной игры. Первый игрок ходит первым и пытается получить наибольшее значение, второй пытается ему помешать. Возьмите несколько партий подобной игры(четные/нечетные) и рассматривайте ответные действия первого игрока на ход второго.
  18  Лебедь Михаил Сергеевич, 18 июля 2018 г. 13:07:33
     Кто не понял: первый игрок хочет заработать как можно больше очков, а второй ему в этом мешает, и пытается получить наименьшее значение. Гарантированный выигрыш: максимальное значение которое сможет получить первый игрок.
 1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru