首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Codeforces 570B Simple Game:最優策略分析

     編輯:關於C++

題目大意

Misha 選擇數字 m,Andrew 選擇 a(1 ≤ a ≤ n)。隨機生成 c ∈ [1, n],距離 c 較近者獲勝;距離相等 Misha 勝。已知 n, m,求使 Andrew 獲勝概率最大的最小 a。

解題思路

Andrew 的最優選擇取決於 m 與中間點的關係:

  • 若 m = 1 且 n = 1,只能選 1。
  • 若 m > n/2,選 m-1(向左靠近中心)。
  • 否則選 m+1(向右靠近中心)。

直觀上,Andrew 應選擇比 Misha 更靠近區間中心的位置,以最大化獲勝區間長度。

參考代碼 (C++)

#include <iostream>
using namespace std;

int main() {
    long long n, m;
    while (cin >> n >> m) {
        if (m == 1 && n == 1) cout << 1 << endl;
        else if (m > n / 2) cout << m - 1 << endl;
        else cout << m + 1 << endl;
    }
    return 0;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved