POJ 2231 Moo Volume , 简单公式推导
来源:互联网 发布:文章数据库设计 编辑:程序博客网 时间:2024/06/08 02:20
POJ 2231 Moo Volume
http://poj.org/problem?id=2231
Time Limit: 1000MS Memory Limit: 65536K
Description
Farmer John has received a noise complaint from his neighbor, Farmer Bob, stating that his cows are making too much noise.
FJ's N cows (1 <= N <= 10,000) all graze at various locations on a long one-dimensional pasture. The cows are very chatty animals. Every pair of cows simultaneously carries on a conversation (so every cow is simultaneously MOOing at all of the N-1 other cows). When cow i MOOs at cow j, the volume of this MOO must be equal to the distance between i and j, in order for j to be able to hear the MOO at all. Please help FJ compute the total volume of sound being generated by all N*(N-1) simultaneous MOOing sessions.
FJ's N cows (1 <= N <= 10,000) all graze at various locations on a long one-dimensional pasture. The cows are very chatty animals. Every pair of cows simultaneously carries on a conversation (so every cow is simultaneously MOOing at all of the N-1 other cows). When cow i MOOs at cow j, the volume of this MOO must be equal to the distance between i and j, in order for j to be able to hear the MOO at all. Please help FJ compute the total volume of sound being generated by all N*(N-1) simultaneous MOOing sessions.
Input
* Line 1: N
* Lines 2..N+1: The location of each cow (in the range 0..1,000,000,000).
* Lines 2..N+1: The location of each cow (in the range 0..1,000,000,000).
Output
There are five cows at locations 1, 5, 3, 2, and 4.
Sample Input
515324
Sample Output
40
Hint
INPUT DETAILS:
There are five cows at locations 1, 5, 3, 2, and 4.
OUTPUT DETAILS:
Cow at 1 contributes 1+2+3+4=10, cow at 5 contributes 4+3+2+1=10, cow at 3 contributes 2+1+1+2=6, cow at 2 contributes 1+1+2+3=7, and cow at 4 contributes 3+2+1+1=7. The total volume is (10+10+6+7+7) = 40.
There are five cows at locations 1, 5, 3, 2, and 4.
OUTPUT DETAILS:
Cow at 1 contributes 1+2+3+4=10, cow at 5 contributes 4+3+2+1=10, cow at 3 contributes 2+1+1+2=6, cow at 2 contributes 1+1+2+3=7, and cow at 4 contributes 3+2+1+1=7. The total volume is (10+10+6+7+7) = 40.
题目大意:数轴上共有N头牛,每头牛有一个坐标。每头牛都要向其他所有牛发出一个叫声,因此一共有 N*(N-1) 个叫声。每个叫声的大小等于两头牛之间坐标差的绝对值。输出所有叫声大小的和。
思路:简单公式推理。首先用sort将所有牛的坐标从小到大排。
假设第 i-1 头牛发出所有叫声和为F i-1,第i到第i-1头牛之间的距离差为d;
那么显然,第i 头牛向第i-1之前的牛发出叫声时,对每头牛都要比从i-1多出一个d,
同理,第i头牛向它之后的牛发出叫声时,对每头牛都要比从i-1少一个d;
所以,F i=F i-1 + d*(i-1-1) - d*(n-i) ;复杂度是O(n)。
需要注意的一点:存储需要用long long 。
代码如下
0 0
- POJ 2231 Moo Volume , 简单公式推导
- POJ 2231 Moo Volume(排序+简单公式推导)
- 简单dp-poj-2231-Moo Volume
- poj 2231 Moo Volume
- poj 2231 Moo Volume
- poj 2231 Moo Volume
- POJ 2231 Moo Volume
- POJ -- 2231 Moo Volume
- POJ 2231 Moo Volume
- poj 2231 Moo Volume
- POJ 2231 Moo Volume
- poj 2231Moo Volume
- POJ 2231 Moo Volume
- POJ 2231-Moo Volume
- poj 2231 Moo Volume
- poj 2231 Moo Volume
- POJ 2231 Moo Volume (暴力)
- poj 杂题 - 2231 Moo Volume
- [代码实例][gtk+]使用builder创建UI
- 关于Oauth认证的那些事
- Xcode常用快捷键
- C#基础知识(四)——异常捕获与程序调试
- 对 Jenkins+ANT+Jmeter 接口测试的实践
- POJ 2231 Moo Volume , 简单公式推导
- 20160626 Splashtop软件实现将平板电脑作为PC的扩展显示器
- XListView上拉加载下拉刷新
- 【通信技术】通信技术部分习题解析
- Android几种数据存储的方式
- RPC 的概念模型与实现解析
- MOB第三方短信验证码
- 硬币排成线 II
- linux下文件系统和文件编辑