关于数学问题的程序解决,找出推导式及西大OJ_14解答
来源:互联网 发布:外汇交易员知乎 编辑:程序博客网 时间:2024/05/01 02:12
以后类似的这种数学公式的题目,一般的想法是循环,把所有情况列举出来,但是这样子会超过运行时间,即Time Limit Exceeded
那么就要想,应该是有简便的算法
所以要注意先是不是可以能进行公式推导!!!!!!
题目:(http://oj.gxu.edu.cn/problem/14/)
小西想在一个n*m的矩形中数出有多少个子矩形。
子矩形即为边长a*b且0<a≤n,0<b≤m。
例如在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个子矩形。
你能帮帮小西吗?
解题思路:
1、循环两层,但是时间超过了
2、那就要进行数学公式的推导
矩形就是在长n中取两个点成小矩形的长,然后在宽m中取两个点成小矩形的宽。
注意的是,长n共有n+1个点,宽m共有m+1个点
所以就是:
还有一点,该题要注意的,就是n,m的最大为1000,那么1000的四次方早就超过int的范围(32位)
所以这里的n,m,f(n,m)都是需要用long long int型的
#include<stdio.h>int main(){long long int n,m;while(~scanf("%lld %lld",&n,&m)){long long int count = 0;count = n*m*(n+1)*(m+1)/4; //数据很大,1000的4次方超过int的范围了,所以都要用long long int printf("%lld\n",count); }return 0;}
阅读全文
0 0
- 关于数学问题的程序解决,找出推导式及西大OJ_14解答
- 一道数学问题的程序解答
- 关于约瑟夫问题的数学解答。
- 几个数学问题的解决及解释
- 关于SQL2005使用中遇到的问题及解答
- 惯性力的数学推导
- 惯性力的数学推导
- lstm的数学推导
- lstm的数学推导
- Makefile 的问题及解答~
- Logistic回归代价函数的数学推导及实现
- 逻辑回归的数学推导及java代码实现
- 关于控制Dcom程序使用端口的问题及解决方式
- 用JAVA程序解决鬼谷子数学问题
- KMP 算法的数学推导
- svm的数学推导原理
- logistic回归的数学推导
- 关于oracle的问题与解答
- PHP 程序员未来路在何方?
- 数据库某字段的截取--比如:轨迹
- 2017年个人总结-程序员的中年焦虑症
- 蓝桥杯 算法训练 字串统计
- Eclipse项目移植到Android studio上踩的坑。。。。。。
- 关于数学问题的程序解决,找出推导式及西大OJ_14解答
- 《getting started with p5.js》(中文版) 第一章 您好:了解p5.js
- JavaSE--------基础语法(一续)
- HTML-如何正确给table加边框
- 文本挖掘与分析课程笔记_Week1
- 实习项目:superviser
- python功能二维表合并,一维表内嵌元祖合并以及取交集,并集,差集
- 基于TextRank API写的测试
- json list map 对象 转换成tostring Json的数据格式