传送门

题意:$T$组询问,每组询问给出一个$N \times M$的网格和一个$K$,每一次你可以消除网格中的两个块,如果两个块的曼哈顿距离小于$K$,则不会得到分数,否则得到等同于它们曼哈顿距离的分数,问最多能得到多少分数。$T \leq 10^5 , N,M \leq 10^6 , K < min(N,M)$


我们考虑网格分成四块,从左上到右下边长分别为$\lfloor \frac{M}{2} \rfloor \times \lceil \frac{N}{2} \rceil , \lfloor \frac{N}{2} \rfloor \times \lceil \frac{M}{2} \rceil , \lfloor \frac{N}{2} \rfloor \times \lceil \frac{M}{2} \rceil , \lfloor \frac{M}{2} \rfloor \times \lceil \frac{N}{2} \rceil$,就像下图这样

然后红色的和红色的一一匹配,蓝色的和蓝色的一一匹配即可,那么$K$的限制就相当于没有了

所以答案是$\lfloor \frac{M}{2} \rfloor \times \lceil \frac{N}{2} \rceil \times (\lfloor \frac{N}{2} \rfloor + \lceil \frac{M}{2} \rceil) + \lfloor \frac{N}{2} \rfloor \times \lceil \frac{M}{2} \rceil \times (\lfloor \frac{M}{2} \rfloor + \lceil \frac{N}{2} \rceil)$

注意下取整的时候一定要打上括号!!!

 #include<bits/stdc++.h>
 using namespace std;
 int main(){
     int N;
     for(cin >> N ; N ; N--){
         long long L , N , M;
         cin >> N >> M >> L;
         cout << (N / ) * ((M + ) / ) * ((N + ) /  + M / ) + (N + ) /  * (M / ) * (N /  + (M + ) / ) << endl;
     }
     ;
 }

LOJ550 Matching 构造的更多相关文章

  1. Spatial Pyramid Matching 小结

    Spatial Pyramid Matching 小结 稀疏编码系列: (一)----Spatial Pyramid 小结 (二)----图像的稀疏表示——ScSPM和LLC的总结 (三)----理解 ...

  2. Aho - Corasick string matching algorithm

    Aho - Corasick string matching algorithm 俗称:多模式匹配算法,它是对 Knuth - Morris - pratt algorithm (单模式匹配算法) 形 ...

  3. [IR] String Matching

    BWT KMP Boyer-Moore BWT [IR] BWT+MTF+AC 中已经介绍了BWT (Burrows–Wheeler_transform)数据转换算法, 这种变换方式不仅方便压缩,同时 ...

  4. LeetCode 失败的尝试 10. regular expression matching & 正则

    Regular Expression Matching 看到正则就感觉头大,因为正则用好了就很强大.有挑战的才有意思. 其实没有一点思路.循环的话,不能一一对比,匹配模式解释的是之前的字符.那就先遍历 ...

  5. VK Cup 2016 - Round 1 (Div. 2 Edition) C. Bear and Forgotten Tree 3 构造

    C. Bear and Forgotten Tree 3 题目连接: http://www.codeforces.com/contest/658/problem/C Description A tre ...

  6. real-Time Correlative Scan Matching

    启发式算法(heuristic algorithm)是相对于最优化算法提出的.一个问题的最优算法求得该问题每个实例的最优解.启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费(指计算 ...

  7. Codeforces 639B——Bear and Forgotten Tree 3——————【构造、树】

    Bear and Forgotten Tree 3 time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  8. Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)

     E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...

  9. (第七场)A Minimum Cost Perfect Matching 【位运算】

    题目链接:https://www.nowcoder.com/acm/contest/145/A A.Minimum Cost Perfect Matching You have a complete ...

随机推荐

  1. 【读书笔记】iOS-iOS的持续集成

    一,Jenkins http://jenkins-ci.org 二,iOS单元测试的持续集成 在Xcode进入OCUnit作为单元测试框架前,把单元测试分为两种:Logic Test和Applicat ...

  2. 去除git版本控制

    命令:find . -name ".git" | xargs rm –Rf linux $ find . -type d -iname '__pycache__' -exec rm ...

  3. Gartner2017年BI研究计划曝光,来看看他研究的都是啥?

    文 | 水手哥 本文出自:知乎专栏<帆软数据应用研究院>——数据干货&资讯集中地   近日,Gartner发布了<Analytics and Business Intelli ...

  4. Pinyin4j实战

    package com.haiyisoft.innovationcenter.pinyin; import org.junit.Test; import net.sourceforge.pinyin4 ...

  5. [20171225]变态的windows批处理4.txt

    [20171225]变态的windows批处理4.txt --//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子: 1.echo &.R:\> ...

  6. Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)

    本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...

  7. Linux RCU 机制详解

    1.简介: RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用. RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用R ...

  8. 字典Key值为变量

    m='aaa4a' d = dict(name=m) print d['name']

  9. JSON数据提取

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.JSON在数据交换中起到了一个载体的作用 ...

  10. 如何以SYSTEM用户运行CMD

    有的时候有些文件在管理员账户不能删除,这个时候需要在SYSTEM用户下删除. 可以通过以SYSTEM权限运行CMD来删除某些文件或目录的目的. 1. 从微软网站下载PSTool. 2. 以管理员运行C ...