您的位置:首页 > 其它

bzoj3524 [Poi2014]Couriers

2016-05-11 19:21 288 查看
  随机乱搞,调调参数勉强过

  代码

  

#include<cstdio>
#include<vector>
#include<ctime>
#include<cstdlib>
#define pb push_back
using namespace std;
const int N =610100;
int n,m,i,j,a,b,c,v
,ans,vis
,stack
,top;
vector<int> vec
;
int ef(int x,int y)
{
int l,r,m;
l=0;
r=vec[y].size()-1;
while (l<=r)
{
m=(l+r)>>1;
if (vec[y][m]>x) r=m-1;else l=m+1;
}
return r;
}
int main()
{
srand(12345678);
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
{
scanf("%d",&v[i]);
vec[v[i]].pb(i);
}
for (i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);

ans=0;top=0;
for (j=1;j<=25;j++)
{
c=v[a+rand()%(b-a+1)];
if (!vis[c])
{
vis[c]=1;stack[++top]=c;
if (ef(b,c)-ef(a-1,c)>(b-a+1)/2)
{
ans=c;break;
}
}
}
for (j=1;j<=top;j++) vis[stack[j]]=0;
printf("%d\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: