zoukankan      html  css  js  c++  java
  • [CF1034B] Little C Loves 3 II

    [CF1034B] Little C Loves 3 II - 构造

    Description

    给定一个(n imes m)的棋盘,每次可以在上面放一对棋子 ((x,y),(x',y')),要求(mid x-x‘mid+mid y-y’mid=3),问最多可以放多少个棋子

    Solution

    分类讨论,假设 (n le m)

    (n=1),以 (6) 为循环节,讨论余数即可

    (n=2),很容易构造出 (m=4,5) 的满解,因此 (8) 以上一定都是满的;而 (6) 又可以拆成两个满行,所以特判 (1,2,4,7) 即可

    (nge 3),最多只会剩下一个格子(当 (nm) 为奇数的情况),否则一定可以填满

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    signed main()
    {
        ios::sync_with_stdio(false);
        int n, m;
        cin >> n >> m;
        if (n > m)
            swap(n, m);
        if (n == 1)
            cout << m / 6 * 6 + 2 * (m % 6 > 3 ? m % 6 - 3 : 0);
        else if (n == 2)
        {
            if (m <= 2)
                cout << 0 << endl;
            else if (m == 3)
                cout << 4 << endl;
            else if (m == 7)
                cout << 12 << endl;
            else
                cout << m * 2 << endl;
        }
        else
            cout << n * m / 2 * 2 << endl;
    }
    
  • 相关阅读:
    freeswitch录音功能
    jdk安装
    maven阿里云镜像
    idea安装
    idea新建maven项目
    tomcat安装
    idea新建maven web项目
    idea新建java项目
    webpack使用
    ACE 安装指南及示例
  • 原文地址:https://www.cnblogs.com/mollnn/p/14676644.html
Copyright © 2011-2022 走看看