zoukankan      html  css  js  c++  java
  • NYOJ 328 完全覆盖 (找规律)

    题目链接

    描述

    有一天小董子在玩一种游戏----用21或12的骨牌把mn的棋盘完全覆盖。但他感觉游戏过于简单,于是就随机生成了两个方块的位置(可能相同),标记一下,标记后的方块不用覆盖。还要注意小董子只有在mn的棋盘能被完全覆盖后才会进行标记。现在他想知道:如果标记前m*n的棋盘能被完全覆盖,标记后的棋盘是否能被完全覆盖?

    • 输入
      第一行有一个整数t(1<=t<=100000),表示有t组测试数据。每组测试数据有三行或一行。第一行有两个整数 m,n(1<=m,n<=25535)表示行数和列数。如果需要标记的话,第二、三行都有两个整数 a,b(1<=a<=m,1<=b<=n),表示行标和列标。
    • 输出
      若标记前mn的棋盘能被完全覆盖,则看标记后的棋盘是否能被完全覆盖,能则输出“YES”,否则输出“NO”;若标记前mn的棋盘不能被完全覆盖则输出“NO”。
    • 样例输入
      2
      4 4
      1 1
      4 4
      5 5
    • 样例输出
      NO
      NO

    分析:

    当可以完全覆盖时,标记的两个坐标和一奇一偶是可以标记

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    using namespace std;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int m,n,a1,b1,a2,b2;
            scanf("%d%d",&m,&n);
            if(m%2==0||n%2==0)///标记前能被完全覆盖
            {
                scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
                if((abs(a1-a2)+abs(b1-b2))%2==0)
                    printf("NO
    ");
                else
                    printf("YES
    ");
            }
            else
                printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    P1908 逆序对
    P3834 【模板】可持久化线段树 1(主席树)
    BZOJ 4300: 绝世好题
    Codevs 2185【模板】最长公共上升子序列
    P1439 【模板】最长公共子序列
    P3865 【模板】ST表
    【转】良心的可持久化线段树教程
    Codevs 1299 切水果
    P3388 【模板】割点(割顶)&& 桥
    P3805 【模板】manacher算法
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6763992.html
Copyright © 2011-2022 走看看