zoukankan      html  css  js  c++  java
  • hdu 5100 n*n棋盘放k*1长方条最多覆盖面积

    http://acm.hdu.edu.cn/showproblem.php?pid=5100

    给一个n*n的棋盘,问用k*1的长方条最多能覆盖多大的面积(k个单位都必须完全覆盖上去)


    首先,若n<k,则棋盘连一个1×k的矩形都放不下,输出0。

    我们只需要考虑n≥k的情况。将棋盘类似于黑白染色,按(i+j)模k划分等价类,给每个格子标一个号。
    标号之后,会注意到每条从左下到右上的斜线数字都是相同的,那么对于s×s的格子,其内部数字有且恰好有2s−1种,所以当s<=k2的时候,内部数字有floor(k2)∗2−1<k种,所以不能有更佳的方案。
    从而证明最优的方案一定是仅剩下一个s×s的正方形区域没有被覆盖到,其中s≤k/2。
    而令l=n % k之后,根据l大小的不同,可以构造出中心为l×l或(k−l)×(k−l)的风车形图案,又通过上面证明这个l(或k−l)就是之前的s,所以是最优的。
    所以令l=n % k,如果l≤k2,最多可覆盖的格子数即为n^2−l^2,否则为n^2−(k−l)^2,显然这样的方案是可以构造出来的(风车形)。

    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <string>
    #include <queue>
    #include <map>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define RD(x) scanf("%d",&x)
    #define RD2(x,y) scanf("%d%d",&x,&y)
    #define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
    #define clr0(x) memset(x,0,sizeof(x))
    #define clr1(x) memset(x,-1,sizeof(x))
    #define eps 1e-9
    const double pi = acos(-1.0);
    typedef long long LL;
    typedef unsigned long long ULL;
    const int modo = 1e9 + 7;
    const int INF = 0x3f3f3f3f;
    const int inf = 0x3fffffff;
    const LL _inf = 1e18;
    const int maxn = 55,maxm = 1<<12;
    int n,k;
    int main()
    {
        int _;RD(_);
        while(_--){
            RD2(n,k);
            int ans,r = n%k;
            if(n < k)
                ans = 0;
            else if(r <= k/2)
                ans = n*n - r*r;
            else
                ans = n*n - (k-r)*(k-r);
                //ans = n*n - (n - 2*(n%k))*(n - 2*(n%k));
            printf("%d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    [软件安装]MYSQL
    [软件安装]JDK
    maven仓库错误
    java.util.Optional
    【原创】Elasticsearch无宕机迁移节点
    【原创】MapReduce备份Elasticsearch数据到HDFS(JAVA)
    python3项目打包成exe可执行程序
    python的frame切换
    switch_to_frame() switch_to.frame()
    如何快速查找透明的icon,让你再也不缺icon的方法
  • 原文地址:https://www.cnblogs.com/zibaohun/p/4106650.html
Copyright © 2011-2022 走看看