给链接:统计方形

这题是棋盘问题的数据加强版。

其实由于洛谷的数据比较水,所以你把我在棋盘问题题解中写的代码提交,也能AC。

但让给我们来看一个更优的解法。

先给代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
scanf("%d%d",&n,&m);
long long sum1=0;
for(int i=1;i<=min(n,m);i++){
sum1+=(n-i+1)*(m-i+1);
}
printf("%lld ",sum1);
long long sum2=1LL*n*(n+1)/2*1LL*m*(m+1)/2;//1
printf("%lld",sum2-sum1);
return 0;
}

其他地方没啥变化,参考我的那篇题解,这里我们只讲讲标1的这个式子,为什么这么写?

我们原来的循环是什么样的?

for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
sum2+=(n-i+1)*(m-j+1);
}
}

其实这个式子写出来,也就是sum2=1*1+1*2+……+2*1+2*2+……+n*1+n*2+……+n*m,所以也就是:

sum2=(1+2+3+……+n)*(1+2+3+……+m)

利用等差数列求和公式就可得到:

sum2=(1+n)*n/2*(1+m)*m/2

注意最后还要乘1LL,防止爆int。

统计方形(NOIP1997)的更多相关文章

  1. 洛谷 P2241统计方形(数据加强版) 题解

    题目传送门 说是加强版,其实可以把棋盘那道题的代码粘过来(注意要开long long): #include<bits/stdc++.h> using namespace std; ,c; ...

  2. luogu P2241 统计方形

    题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来 ...

  3. P2241 统计方形(数据加强版)

    题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来 ...

  4. 洛谷——P2241 统计方形(数据加强版)

    https://www.luogu.org/problem/show?pid=2241 题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 ...

  5. [洛谷] P2241 统计方形(数据加强版)

    点击查看代码 #include<bits/stdc++.h> using namespace std; long long n, m, total, sum1, sum2; int mai ...

  6. 棋盘问题(NOIP1997)

    题目链接:棋盘问题 这道题水不水呢?还是很水的,为什么?因为数据太小了.直接算就行了. #include<bits/stdc++.h> using namespace std; int m ...

  7. R语言与医学统计图形-【33】生存曲线、森林图、曼哈顿图

    1.生存曲线 基础包survival+扩展包survminer. survival包内置肺癌数据集lung. library(survival) library(survminer) str(lung ...

  8. spark处理大规模语料库统计词汇

    最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...

  9. TFS 测试用例步骤数据统计

    TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...

随机推荐

  1. cf-Global Round2-C. Ramesses and Corner Inversion(思维)

    题目链接:http://codeforces.com/contest/1119/problem/C 题意:给两个同型的由0.1组成的矩阵A.B,问A能否经过指定的操作变成B,指定操作为在矩阵A中选定一 ...

  2. springmvc整合mybatis 配置文件

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

  3. Node使用 Express框架,实现文件上传

    一 安装依赖包 npm install multer --save 二 客户端上传文件 <!DOCTYPE html> <html> <head> <meta ...

  4. 专项测试——移动app安装包检测

    一.背景和现状 安装包的重要性无需多提,针对安装包质量控制越来越严格和规范,包括证书.文件大小.安装成功率等,APP的证书及混淆是影响APP的安装成功率及代码安全性的很大因素,随着功能迭代,安装包也会 ...

  5. AtCoder Regular Contest 096 D - Static Sushi(线性dp)

    Problem Statement "Teishi-zushi", a Japanese restaurant, is a plain restaurant with only o ...

  6. makefile文件操作大全

     Makefile的规则 -- 转自 :http://blog.csdn.net/ruglcc/article/details/7814546/ 在讲述这个Makefile之前,还是让我们先来粗略地看 ...

  7. 安装sql server 2008 提示错误 SQL Server 2005 Express 工具。 失败

    安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 ...

  8. swift 4.2 - 根据字符串 push指定控制器

    俩个方法 1. 创建类写成 类方法 import UIKit /* * 注释:获得VC * 1.字符串 和使用的控制器,直接跳转 * 2.用过字符串获得对应VC */ class JYGetPushV ...

  9. 细说GIT分布式版本控制器

    一.Git介绍 Git是目前世界上最先进的分布式版本控制器.Svn CVS 版本控制器:就是用来追溯自己书写的代码的记录信息.好处:可以非常方便的记录何时何地何人操作了哪些代码. 什么是分布式版本控制 ...

  10. 34-BigInteger详解

    在用C或者C++处理大数时感觉非常麻烦,但是在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数, ...