BNUoj Rectangle 在矩形中查找矩形的种类
来源:互联网 发布:企业文档数据加密 编辑:程序博客网 时间:2024/06/11 01:31
E. Rectangle
Time Limit: 1000ms
Memory Limit: 65536KB
64-bit integer IO format: %lld Java class name:Main SubmitStatus
frog has a piece of paper divided into \(n\) rows and \(m\) columns. Today, she would like to draw a rectangle whose perimeter is not greater than \(k\).
There are \(8\) (out of \(9\)) ways when \(n = m = 2, k = 6\)
Find the number of ways of drawing.
Input
The input consists of multiple tests. For each test:
The first line contains \(3\) integer \(n, m, k\) (\(1 \leq n, m \leq 5 \cdot 10^4, 0 \leq k \leq 10^9\)).
Output
For each test, write \(1\) integer which denotes the number of ways of drawing.
Sample Input
2 2 61 1 050000 50000 1000000000
Sample Output
801562562500625000000
SubmitStatus
超时的算法
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int n,m,k; while(~scanf("%d%d%d",&n,&m,&k)) {k/=2;long long sum=0;for(int i=1;;i++){if(i>=k||i>n)break;for(int j=1;;j++){if(j>=k||j>m||j+i>k)break;sum+=(n-i+1)*(m-j+1); }}printf("%lld\n",sum); }}
根据等差公式优化成O(n)的时间复杂度
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ long long int n,m,k; while(~scanf("%lld%lld%lld",&n,&m,&k)) {k/=2;long long sum=0;if(k>n+m)k=n+m;for(long long i=1;;i++){if(i>=k||i>n)break;if(k-i>=m){sum+=(((m+1)*m/2)*(n-i+1)); //等差公式 ,从m+....+1 }else{sum+=(((2*m-k+i+1)*(k-i)/2)*(n-i+1)); //等差公式,从m+..+(m-(k-i)+1)<span id="transmark"></span>}}printf("%lld\n",sum); }}
1 0
- BNUoj Rectangle 在矩形中查找矩形的种类
- 斩bnuoj 直线与矩形的交点
- Maximal Rectangle 最大的矩形
- Largest Rectangle in Histogram 直方图中最大的矩形面积
- Maximal Rectangle 二维矩形中最大的1个数
- Largest Rectangle in Histogram 直方图中最大的矩形
- [Leetcode] largest rectangle in histogram 直方图中最大的矩形
- opencv在图中画矩形rectangle用法
- 1.创建一个Rectangle类,添加width和height两个成员变量。 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 3.编程利用Rectangle输出一个矩形的周
- 1.创建一个Rectangle类,添加width和height两个成员变量。 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 3.编程利用Rectangle输出一个矩形的周
- 90页第三题,创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 ,编程利用Rectangle输出一个矩形的
- 创建一个Rectangle类,添加width和height两个成员变量 在Rectangle中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周
- 1.创建一个Rectangle类,添加width和height两个成员变量。 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 3.编程利用Rectangle输出一个矩形的周
- 90页第三题,创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 ,编程利用Rectangle输出一个矩形的
- .创建一个Rectangle类,添加width和height两个成员变量。 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 3.编程利用Rectangle输出一个矩形的周
- 90页第三题,创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 ,编程利用Rectangle输出一个矩形的
- * 1.创建一个Rectangle类,添加width和height两个成员变量。 * 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 * 3.编程利用Rectangle输出一个矩形
- Rectangle Area 两个矩形的面积
- Windows7 平台下Python+NLTK环境搭建
- Codeforces 492D Vanya and Computer Game
- ROS-机器人操作系统(ROS)浅析----第二章
- 关于system()实现中阻塞sigchld信号的问题(转帖) http://blog.chinaunix.net/uid-17044717-id-2835670.html
- linux设备列表
- BNUoj Rectangle 在矩形中查找矩形的种类
- php中使用memcache扩展的性能问题
- hdu 5480(前缀和)
- Swift教程-视频拍摄教程
- java菜鸟1:jdk 安装
- 【HDU 5471】Count the Grid
- ***Shortest Palindrome
- POJ 3262 Protecting the Flowers(贪心)
- 黑马程序员——String类及其常见操作