zoukankan      html  css  js  c++  java
  • 洛谷P1288 取数游戏II 题解 博弈论

    题目链接:https://www.luogu.org/problem/P1288
    首先,如果你的一边的边是 (0) ,那么你肯定走另一边。
    那么你走另一边绝对不能让这条边有剩余,因为这条边有剩余的话队首再走回来并去掉所有的值那么你就输了。
    因为大家都绝对聪明,所以会选择将走过的边全部取完。
    那么现在就面临着一个问题,你一开始要么往左走,要么往右走。
    所以需要记录一下往左走的边数和往右走的边数,只要有一条路的边数是奇数,则先手赢;如果两条边都是偶数,则奇数赢。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int n, a[22], n1, n2;
    int main() {
        cin >> n;
        for (int i = 1; i <= n; i ++) cin >> a[i];
        for (int i = 1; i <= n && a[i]; n1 ++, i ++);
        for (int i = n; i >= 1 && a[i]; n2 ++, i --);
        puts( (n1%2 || n2%2) ? "YES" : "NO" );
        return 0;
    }
    
  • 相关阅读:
    gflag使用
    INTERVIEW #2
    Decision Tree
    Java FAQ
    K-Nearest Neighbors
    INTERVIEW #1
    C++ FAQ
    INTERVIEW #0
    Selection Sort
    TCP 3-Way Handshake
  • 原文地址:https://www.cnblogs.com/codedecision/p/11793934.html
Copyright © 2011-2022 走看看