给链接:统计方形

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

其实由于洛谷的数据比较水,所以你把我在棋盘问题题解中写的代码提交,也能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。

最新文章

  1. [Leetcode] Contains Duplicate III
  2. 一种利用 Cumulative Penalty 训练 L1 正则 Log-linear 模型的随机梯度下降法
  3. SPOJ 1811 Longest Common Substring
  4. POJ 3661 (线性DP)
  5. 电视直播用的.m3u8 PC端和移动端地址 【流媒体播放测试专用】
  6. float类型进行计算精度丢失的问题
  7. 使用libCurl实现断点下载
  8. URI和URL
  9. win8 VS2010 配制OpenGL
  10. html页面显示服务器时间
  11. MYSQL表记录字段换行符回车符处理
  12. mybatis学习日记-day01
  13. Swift基础之Delegate方法的使用
  14. 源码来袭:call、apply手写实现与应用
  15. java web从入门到精通
  16. 关键字搜索:jQuery过滤器插件fastLiveFilter||显示结果条数
  17. debian下如何源码安装tmux
  18. redis 五大数据类型之sortedset
  19. 清除chrome浏览器HSTS缓存
  20. HDU 2023 求平均成绩

热门文章

  1. NDK环境搭建方法2
  2. Leetcode:LRU Cache,LFU Cache
  3. Centos 7 下 LAMP 部署
  4. 205. Isomorphic Strings (Map)
  5. 消除游戏源码 Match 3 Jewel Full 298 Levels
  6. vue 登录前做校验this.$router.push(location)
  7. swift 带有下划线的UIbutton
  8. Nginx特点及其配置
  9. es数组去重的简写
  10. 简述 OAuth 2.0 的运作流程(转)