zoukankan      html  css  js  c++  java
  • HDU 1564 Play a game && HDU 2147 kiki's game

    HDU 1564 Play a game题意:

    棋盘的大小是n*n。一块石头被放在一个角落的广场上。他们交替进行,8600人先走。每次,玩家可以将石头水平或垂直移动到一个未访问的邻居广场。谁不采取行动,谁就会输掉这场比赛。如果双方都打得很好,谁将赢得比赛?

    题解:

    三角形代表起始位置,虽然不是右上角但是解题都差不多

    如果n为偶数,那么所有格子可以被2*1的砖块覆盖掉。

    这样先手每次都移动到当前1*2的另外一块。先手必赢。

    如果n为奇数。出了起始那个店,其余点都可以被覆盖。

    代码:

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 #include <cstring>
     5 #define MAXN 5005
     6 using namespace std;
     7 int main()
     8 {
     9     int n;
    10     while(~scanf("%d",&n)&&n)
    11     {
    12         if(n%2==0)
    13             printf("8600
    ");
    14         else
    15             printf("ailyanlu
    ");
    16     }
    17     return 0;
    18 }
    View Code

    题意:

    棋盘的尺寸是n*m。首先,把一枚硬币放在右上角(1,m)。每次一个人可以把硬币移到左边,下面或者左边下面的空格里。不能采取行动的人将会输掉比赛。

    先手赢了打印出Wonderful!,输了打印另一个

    题解:

    打个表就可以看出来,长或者宽只要有一个为偶数,那么就必胜

     1 #include <cstdio>
     2 
     3 #include <cstdlib>
     4 
     5 #include <cstring>
     6 
     7 #include <algorithm>
     8 
     9  
    10 
    11 using namespace std;
    12 
    13  
    14 
    15 int main(){
    16     int n,m;
    17 
    18     while(scanf("%d %d",&n,&m)!=EOF){
    19 
    20         if(n==0 && m==0)break;
    21 
    22         if(n%2==0 || m%2==0){
    23 
    24             printf("Wonderful!
    ");
    25 
    26         }else{
    27 
    28             printf("What a pity!
    ");
    29 
    30         }
    31 
    32     }
    33 
    34     return 0;
    35 
    36 }
    View Code
  • 相关阅读:
    Python基础知识(五)------字典 , 解包 , 枚举 ,嵌套
    python基础知识(一) 计算机概念,python的初步认识
    格式化windows 文件为linux格式文件
    Linux防火墙
    CentOS 7 连接不到网络解决方法(设置静态ip)
    Linux sudo 找不到命令
    Centos7 中查找文件、目录、内容
    Linux命令查看各端口号占用情况
    Linux weblogic
    centos7 配置JDK
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11371503.html
Copyright © 2011-2022 走看看