三分模板
2016-09-23 20:12
169 查看
jzoj 1325 yl杯超级篮球赛
#include <cstdio> #include <iostream> #include <cmath> #include <algorithm> #include <cstring> #define fo(i,a,b) for (int i=a;i<=b;i++) #define N 50005 #define INF 2147483647 using namespace std; struct note { int x,y,w; }a ; int n; double ans; inline int read() { int x=0,w=1; char ch=getchar(); while(ch>'9'||ch<'0'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*w; } double Calc1(double x) { double sum=0; fo(i,1,n) sum+=a[i].w*abs(x-a[i].x); return sum; } double Calc2(double y) { double sum=0; fo(i,1,n) sum+=a[i].w*abs(y-a[i].y); return sum; } int main() { n=read(); fo(i,1,n) a[i].w=read(); fo(i,1,n) a[i].x=read(),a[i].y=read(); double l=-INF,r=INF; while (r-l>=0.00000001) { double mid1=(r-l)/3+l,mid2=((r-l)/3)*2+l; if (Calc1(mid1)<Calc1(mid2)) r=mid2; else l=mid1; } ans+=Calc1(l); l=-INF,r=INF; while (r-l>=0.00000001) { double mid1=(r-l)/3+l,mid2=((r-l)/3)*2+l; if (Calc2(mid1)<Calc2(mid2)) r=mid2; else l=mid1; } ans+=Calc2(l); printf("%.0lf.00",ans); }
相关文章推荐
- HDU 4717 The Moving Points (三分 模板)
- 三分模板
- HDU 4717 The Moving Points (三分 模板)
- 浮点三分模板
- 二分+三分模板
- 二分+三分模板
- (求极值)三分模板
- 三分模板
- HDU 4717 The Moving Points (三分 模板)
- 整数三分模板
- HDU 4717 The Moving Points (三分 模板)
- C++——三分答案模板——UmBasketella
- HDU 4717 The Moving Points (三分 模板)
- HDU 4717 The Moving Points (三分 模板)
- 二分和三分模板
- 三分 模板
- 三分查找算法(转载学习)*【模板】
- POJ 3737 UmBasketella(三分模板)
- 【模板】【洛谷 P3382】三分
- 二分、三分查找算法模板