nyist_1005 Moo Volume
来源:互联网 发布:电力通信网络组网分析 编辑:程序博客网 时间:2024/06/05 14:34
题意是:给你n头牛的位置,求每头牛到其他每个牛的(位置)走的距离和。
Cow at 1 contributes 1+2+3+4=10,意思是位置1的牛到位置2,3,4,5的牛要走1,2,3,4路程。
//推导法#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long LL;int a[11000];LL b[11000];int abs(int x){return x>=0?x:-x;}int main(){ int n; while(~scanf("%d",&n)){ memset(b,0,sizeof(b)); for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); // for(int i=1;i<=n;i++) /*这个及以下的Pr可以输出看看*/ // printf("%d ",a[i]);printf("\n"); int mid=n/2+1; LL sum=0; int temp=mid; for(int i=1;i<=n;i++) //首先计算出中间值 { if(i==mid) continue; sum+=abs(a[mid]-a[i]); } b[mid]=sum;//printf("b[%d]=%d\n",mid,b[mid]); for(int i=mid-1;i>=1;i--)//向左逐个推值 { int d=abs(a[i]-a[mid]);//第i个点和中间点的差值 b[i]=b[mid]+((n-i)-i)*d;//以第i个为界,左边有i个值(包括自身),右边n-i个值,比中间值多((n-i)-i)*d;(画图思考) mid=i; //更新中间点使其紧挨将要推的下一个i(只有紧挨的两点上面的求值公式才对) //printf("b[%d]=%d\n",i,b[i]); } mid=temp;//重回数组的中间 for(int i=mid+1;i<=n;i++) //向右逐个推值 { int d=abs(a[i]-a[mid]); b[i]=b[mid]+(i-1-(n-i+1))*d;//稍有不同 mid=i; //printf("b[%d]=%d\n",i,b[i]); } //for(int i=1;i<=n;i++) // printf("%d ",b[i]);cout<<endl; sum=0; for(int i=1;i<=n;i++) sum+=b[i]; cout<<sum<<endl; }return 0;}
//公式法#include <stdio.h>#include <algorithm>using namespace std;long long cow[10010];int main(){ long long n,i; scanf("%lld",&n); for(i=0;i<n;i++) scanf("%lld",&cow[i]); sort(cow,cow+n); long long sum=0; for(i=1;i<n;i++) sum+=(cow[i]-cow[i-1])*i*(n-i)*2; printf("%lld\n",sum); return 0;}//ps:可以推导出来,感觉比公式好多了;
0 0
- nyist_1005 Moo Volume
- Moo Volume
- Moo Volume
- Moo Volume
- Moo Volume
- poj 2231 Moo Volume
- openjudge-Moo Volume
- poj 2231 Moo Volume
- poj 2231 Moo Volume
- 1633: 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
- 2.NavigationView
- 2 系统建模
- 安卓中Public void onCreate(Button savedInstanceState) 的意思
- gcc编译的一点小知识点
- 改成utf-8
- nyist_1005 Moo Volume
- HDU 1069 (DP)
- hdu4314(排序+dp)
- mysql安装
- Python Import机制备忘
- 手机号正则表达式匹配
- Java-IO之ProgressMonitorInputStream
- hdu5700区间交(线段树)
- APP版本升级,数据库数据如何办?