您的位置:首页 > 其它

bzoj1637 [Usaco2007 Mar]Balanced Lineup

2017-08-29 08:51 423 查看
题目

诶,国庆节玩了四天吧,几乎并没有干和学习有关的事233。

5号开始做noip历年提高组的题,回想自己去年和前年多么的弱,哎。。

要是当时能看出前年D1T2是tarjan裸题的话,初三就是一等了233。

算了,今年继续努力吧。

来刷刷水题。

类似中位数的一种做法,然后让区间和为0,做前缀和就好了。

学习学习结构体的重载。

慢呀。

#include<bits/stdc++.h>
#define N 50000
using namespace std;
struct cow{
int ind,val;
cow(int a=0,int b=0){
ind=a; val=b;
}
cow operator + (const cow &o){
return cow(ind+o.ind,val);
}
bool operator < (const cow &o)const{
return val<o.val;
}
}A[N+5],f[N+5];
int n,mx;
int main()
{
freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++)scan
4000
f("%d%d",&A[i].ind,&A[i].val);
sort(A+1,A+n+1);
for(int i=1;i<=n;i++)if(A[i].ind==0)A[i].ind=-1;
f[0]=(0,0);
for(int i=1;i<=n;i++)f[i]=A[i]+f[i-1];
for(int i=0;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(f[j].ind-f[i].ind==0)mx=max(mx,A[j].val-A[i+1].val);
cout<<mx;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: