• 【博弈论/思维题】人人尽说江南好


    选自HEOI2014

    BZOJ 3609: [Heoi2014]人人尽说江南好

    • 因为游戏规定,首先无法合并的一方判输, 每人都会使用最优策略, 那么贪心的想, 最优合并方案最后石子排布情况一定为m, m....m, n%m. 初始每堆石子都为一个, 所以这种情况是一定可以实现的
    • 所以只需要计算出合并成最终方案的步数, 若为奇数, 先手胜, 偶数, 后手胜。
    • sum = (n / m) * (m - 1) + (n % m) - 1;   //n/m堆(能正好凑成m个的石子堆数)
    • 因为每堆石子初始1个, 所以合并成一堆, 需要m-1次,最后剩下的n%m个, 合并成一堆也只需要(n%m)-1 次
    • 特殊判断, 若n能被m整除, 后面的{ (n%m) - 1}没有意义, 如果直接代式子, 还会多减去一, 所以分开计算
     1 /**************************************************************
     2     Problem: 3609
     3     User: Hwjia
     4     Language: C++
     5     Result: Accepted
     6     Time:0 ms
     7     Memory:1288 kb
     8 ****************************************************************/
     9  
    10 #include<cstdio>
    11 #include<iostream>
    12 using namespace std;
    13 int T, n, m;
    14 int main() {
    15     scanf("%d", &T);
    16     while(T--) {
    17         scanf("%d%d", &n, &m);
    18         int tot = (n / m) * (m - 1);
    19         if(n % m != 0) tot += (n % m) - 1;
    20         if(tot & 1) printf("0
    ");
    21         else printf("1
    ");
    22     }
    23     return 0;
    24 }

    0ms!!

    短小精悍的代码qwq

    但是它胜在妙啊QuQ!

  • 相关阅读:
    加签验签
    .net core三个生命周期
    List,IList,IEnumerable的区别
    IHttpClientFactory 模拟http请求
    TDengine在Linux下的安装
    Linux环境下安装jdk
    在 React 中使用 JSX 的好处
    React介绍(讲人话)
    React是什么,为什么要使用它?
    mac系统下给文件夹加密方法
  • 原文地址:https://www.cnblogs.com/Hwjia/p/9854296.html
Copyright © 2020-2023  润新知