【BZOJ】1679: [Usaco2005 Jan]Moo Volume 牛的呼声(数学)
2014-09-03 05:22
513 查看
http://www.lydsy.com/JudgeOnline/problem.php?id=1679
水题没啥好说的。。自己用笔画画就懂了
将点排序,然后每一次的点到后边点的声音距离和==(n-i)*(a[i+1]-a[i])+之前同样操作所得的的sum
然后答案就是累加后×2
约翰的邻居鲍勃控告约翰家的牛们太会叫.
约翰的N(1≤N≤10000)只牛在一维的草场上的不同地点吃着 草.她们都是些爱说闲话的奶牛,每一只同时与其他N-1只牛聊着天.一个对话的进行,需要两只牛都按照和她们间距离等大的音量吼叫,因此草场上存在着 N(N-1)/2个声音. 请计算这些音量的和.
第1行输入N,接下来输入N个整数,表示一只牛所在的位置.
一个整数,表示总音量.
1
5
3
2
4
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.
水题没啥好说的。。自己用笔画画就懂了
将点排序,然后每一次的点到后边点的声音距离和==(n-i)*(a[i+1]-a[i])+之前同样操作所得的的sum
然后答案就是累加后×2
#include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> using namespace std; #define rep(i, n) for(int i=0; i<(n); ++i) #define for1(i,a,n) for(int i=(a);i<=(n);++i) #define for2(i,a,n) for(int i=(a);i<(n);++i) #define for3(i,a,n) for(int i=(a);i>=(n);--i) #define for4(i,a,n) for(int i=(a);i>(n);--i) #define CC(i,a) memset(i,a,sizeof(i)) #define read(a) a=getint() #define print(a) printf("%d", a) #define dbg(x) cout << #x << " = " << x << endl #define printarr(a, n, m) rep(aaa, n) { rep(bbb, m) cout << a[aaa][bbb]; cout << endl; } inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; } inline const int max(const int &a, const int &b) { return a>b?a:b; } inline const int min(const int &a, const int &b) { return a<b?a:b; } const int N=10005; int n; long long ans, sum , a ; int main() { read(n); for1(i, 1, n) scanf("%lld", &a[i]); sort(a+1, a+1+n); for3(i, n, 1) { sum[i]=(n-i)*(a[i+1]-a[i])+sum[i+1]; ans+=sum[i]; } printf("%lld", ans<<1); return 0; }
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.约翰的邻居鲍勃控告约翰家的牛们太会叫.
约翰的N(1≤N≤10000)只牛在一维的草场上的不同地点吃着 草.她们都是些爱说闲话的奶牛,每一只同时与其他N-1只牛聊着天.一个对话的进行,需要两只牛都按照和她们间距离等大的音量吼叫,因此草场上存在着 N(N-1)/2个声音. 请计算这些音量的和.
Input
* Line 1: N * Lines 2..N+1: The location of each cow (in the range 0..1,000,000,000).第1行输入N,接下来输入N个整数,表示一只牛所在的位置.
Output
* Line 1: A single integer, the total volume of all the MOOs.一个整数,表示总音量.
Sample Input
51
5
3
2
4
INPUT DETAILS:
There are five cows at locations 1, 5, 3, 2, and 4.
Sample Output
40OUTPUT 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.
HINT
Source
Silver相关文章推荐
- BZOJ 1679: [Usaco2005 Jan]Moo Volume 牛的呼声( )
- bzoj 1679: [Usaco2005 Jan]Moo Volume 牛的呼声 乱搞
- 【BZOJ 1679】 [Usaco2005 Jan]Moo Volume 牛的呼声
- BZOJ1679: [Usaco2005 Jan]Moo Volume 牛的呼声
- BZOJ 1679: [Usaco2005 Jan]Moo Volume 牛的呼声
- [BZOJ] 1679: [Usaco2005 Jan]Moo Volume 牛的呼声
- bzoj1679[Usaco2005 Jan]Moo Volume 牛的呼声
- bzoj1679[Usaco2005 Jan]Moo Volume 牛的呼声
- bzoj 1679: [Usaco2005 Jan]Moo Volume 牛的呼声【枚举】
- 1679: [Usaco2005 Jan]Moo Volume 牛的呼声 (差分序列)
- bzoj1677[Usaco2005 Jan]Sumsets 求和
- 【BZOJ】1677: [Usaco2005 Jan]Sumsets 求和(dp/规律)
- 【bzoj1677】[Usaco2005 Jan]Sumsets 求和
- bzoj1677[Usaco2005 Jan]Sumsets 求和
- bzoj:1677 [Usaco2005 Jan]Sumsets 求和
- bzoj1735[Usaco2005 jan]Muddy Fields 泥泞的牧场
- BZOJ1735: [Usaco2005 jan]Muddy Fields 泥泞的牧场
- BZOJ1736 [Usaco2005 jan]The Wedding Juicer 婚宴的榨汁机
- BZOJ 1677: [Usaco2005 Jan]Sumsets 求和( dp )
- bzoj 1677: [Usaco2005 Jan]Sumsets 求和【dp】