• [luogu4018][Roy&October之取石子]


    题目链接

    思路

    这个题思路挺巧妙的。
    情况一:
    首先如果这堆石子的数量是1~5,那么肯定是先手赢。因为先手可以直接拿走这些石子。如果石子数量恰好是6,那么肯定是后手赢。因为先手无论怎样拿也无法直接拿走六个石子。
    情况二:
    考虑继续推广,如果石子数是7~11,那么先手也能赢。因为先手可以先拿成6,然后就变成了情况1。如果石子数是12,那么一定是后手赢。因为根据上面讨论,当石子数量为6的时候,此时的先手一定输。如果石子数量为12,那么现在的人无论如何也无法拿成6,所以肯定会输。
    结论
    如果石子数是6的倍数,那么此时的先手会输。如果不是6的倍数,那么现在的先手可以把石子拿成6的倍数,并且另一个人变成先手。所以此时后手赢

    代码

    #include<cstdio>
    #include<iostream>
    #define fi(s) freopen(s,"r",stdin);
    #define fo(s) freopen(s,"w",stdout);
    using namespace std;
    typedef long long ll;
    ll read() {
    	ll x = 0,f = 1;char c = getchar();
    	while(c < '0' || c > '9') {
    		if(c == '-') f = -1;
    		c = getchar();
    	}
    	while(c >= '0' && c <= '9') {
    		x = x * 10 + c - '0';
    		c = getchar();
    	}
    	return x * f;
    }
    int main() {
    	int t = read();
    	while(t--) {
    		ll n = read();
    		if(!(n % 6)) puts("Roy wins!");
    		else puts("October wins!");
    	}
    	return 0;
    }
    

    每篇一言

    一旦下雨,路上就充满肮脏和泥泞 ——从你的全世界路过

  • 相关阅读:
    Kubernetes之集群安装⭐
    Kubernetes之资源清单🌌
    Kubernetes之kubectl使用🍃
    Kubernetes之Harbor仓库🌳
    Set
    javascript输出
    统一码
    CTF入门——密码学基础
    WPA加密数据包简单破解aircrackng
    记一次靶场考核
  • 原文地址:https://www.cnblogs.com/wxyww/p/9878325.html
Copyright © 2020-2023  润新知