对于n*m网格

取min(n,m)作为最大的正方形边长

则答案可以表示成

s=1~min(n,m)

对于一个s*s的正方形

用oblq数组储存有多少四个角都在这个正方形边上的正方形

以4*4为例

除了4*4自身外,四个角在边上的正方形还有

所以4*4网格最多可以有4种正方形存在

推出s*s网格最多可以有s种正方形存在

单看这些正方形在网格上侧的点所在位置

可以发现这种“斜正方形”共有s-1种情况

且每个正方形的边长为

因为S=c^2

所以每个正方形面积为

取和,加上原本的面积s*s,存放在oblq[s]内便于引用

然后考虑组合情况

对于一个n*m的网格,里面可以组合出(n-s+1)*(m-s+1)种s*s的正方形

所以每次数量加上(n-s+1)*(m-s+1)*s

面积加上(n-s+1)*(m-s+1)*oblq[s]

取和即可得到答案

代码多加了个t变量,每次让n和m递减,t递增,意义不变

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=;
ll oblq[];
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
ll T,n,m,i,j,t,N,S;
for(i=;i<=;i++){
oblq[i]=i*i;
for(j=;j<i;j++)
oblq[i]+=j*j+(i-j)*(i-j);
oblq[i]%=mod;
}
cin>>T;
while(T--){
cin>>n>>m;
N=S=;
t=;
while(n&&m){
N=(N+n*m*t)%mod;
S=(S+n*m*oblq[t])%mod;
n--;
m--;
t++;
}
cout<<N<<' '<<S<<endl;
} return ;
}

ZJNU 2136 - 会长的正方形的更多相关文章

  1. [LeetCode] Matchsticks to Square 火柴棍组成正方形

    Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match ...

  2. [LeetCode] Maximal Square 最大正方形

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  3. 【纯css】左图右文列表,左图外框宽度占一定百分比的正方形,右上下固定,右中自动响应高度。支持不规则图片。

    查看演示 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  4. BZOJ1047: [HAOI2007]理想的正方形 [单调队列]

    1047: [HAOI2007]理想的正方形 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2857  Solved: 1560[Submit][St ...

  5. 洛谷 P1387 最大正方形 Label:奇怪的解法

    题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...

  6. H5一行显示两个正方形

    1)有时候一些图片会是正方形或者长方形,对于这样的图片一般都是居中显示到正方体内,代码如下:  .exhibition_list img{width:100%;position: relative;t ...

  7. 求解最大正方形面积 — leetcode 221. Maximal Square

    本来也想像园友一样,写一篇总结告别 2015,或者说告别即将过去的羊年,但是过去一年发生的事情,实在是出乎平常人的想象,也不具有代表性,于是计划在今年 6 月份写一篇 "半年总结" ...

  8. for 循环 正方形

    <?php//================================正方形//for($q = 1; $q <= 5; $q ++ ){//    for($z =1; $z & ...

  9. hdu 3047–Zjnu Stadium(带权并查集)

    题目大意: 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突. 分析: 首 ...

随机推荐

  1. Pyinstaller的安装及简单使用

    (1)安装: 用传统的pip install pyinstaller出错,在https://pypi.org/project/PyInstaller/#files上下载PyInstaller-3.4. ...

  2. JAVAEE 和项目开发(第六课:服务器的安装和目录介绍和闪退解决办法)

    课程介绍: 在学习了 HTTP 协议后,我们对浏览器和服务器的交互流程以及规范有了一定程度的认知,并也有了自己的理解.但是不少同学对服务器的概念还是有些模糊的,那么本节课就针对服务器进行介绍,我们一起 ...

  3. 浅谈__slots__

    __slots__在python中是扮演属性声明(Attribute Declaration)的角色,当然属性本身不用声明,只需要在使用前赋值即可,但是实际上,属性的应用远非在使用前赋值就行,所以有a ...

  4. vue-cli3.x 搭建项目目

    安装文档 https://cli.vuejs.org/zh/guide/ 安装条件 npm 更至最新 node >=8.9 可以用npm -v 查看npm的版本号 1.关于旧版本 Vue CLI ...

  5. Tomcat解压版Windows配置(运行环境非开发环境)

    tomcat官网下载的9.0.19,解压后目录如下: java官网下载的jre8 (8u131),目录如下(应该是下载的解压版): 打开tomcat9.0.19根目录下的RUNNING.txt,里面有 ...

  6. POJ 1260:Pearls 珍珠DP

    Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7947   Accepted: 3949 Descriptio ...

  7. Java编程知识点梳理

    1. elementAt()   temp.elementAt(0) 返回temp这个vector里面存放的第一个元素--->也是一个vector类型. 2. 字符串空格分割 String [] ...

  8. 用Pandas Dataframe支撑起多只金融产品股票的数据内部形态

    3. 如果同时拿一个板块股票的收市价和成交额 前一篇说到,用大盘指数,如恒生指数,上证,深证,这些重要的大盘指数来做Dataframe主键,那麽如果是同时拿一个板块股票的收市价和成交额,可以怎样操作呢 ...

  9. mybatis中foreach collection的三种用法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...

  10. python + selenium +win32gui + winspy 实现图片上传

    过程:模拟点击上传按钮,打开Windows对话框,编辑栏输入文件路径(或网址)点击确定.网上随便找了一个进行测试. 点击后出现Windows上传对话框 用 winspy 来检测窗口的句柄 python ...