bzoj2724
来源:互联网 发布:spring框架编程实例 编辑:程序博客网 时间:2024/05/17 09:30
不得不说分块的思想真的很神奇。。。
#include<map>#include<set>#include<cmath>#include<stack>#include<queue>#include<cstdio>#include<vector>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#define mod 10007#define pi acos(-1)#define inf 0x7fffffff#define ll long longusing namespace std;ll read(){ ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,m,blo,id;int v[50005],bl[50005];int f[505][505];map<int,int>mp;int val[50005],cnt[50005];vector<int>ve[50005];void pre(int x){ memset(cnt,0,sizeof(cnt)); int mx=0,ans=0; for(int i=(x-1)*blo+1;i<=n;i++) { cnt[v[i]]++; int t=bl[i]; if(cnt[v[i]]>mx||(cnt[v[i]]==mx&&val[v[i]]<val[ans])) ans=v[i],mx=cnt[v[i]]; f[x][t]=ans; }}int query(int l,int r,int x){ int t=upper_bound(ve[x].begin(),ve[x].end(),r)-lower_bound(ve[x].begin(),ve[x].end(),l); return t;}int query(int a,int b){ int ans,mx; ans=f[bl[a]+1][bl[b]-1]; mx=query(a,b,ans); for(int i=a;i<=min(bl[a]*blo,b);i++) { int t=query(a,b,v[i]); if(t>mx||(t==mx&&val[v[i]]<val[ans]))ans=v[i],mx=t; } if(bl[a]!=bl[b]) for(int i=(bl[b]-1)*blo+1;i<=b;i++) { int t=query(a,b,v[i]); if(t>mx||(t==mx&&val[v[i]]<val[ans]))ans=v[i],mx=t; } return ans;}int main(){ n=read();m=read(); blo=200; int ans=0; for(int i=1;i<=n;i++) { v[i]=read(); if(!mp[v[i]]) { mp[v[i]]=++id; val[id]=v[i]; } v[i]=mp[v[i]]; ve[v[i]].push_back(i); } for(int i=1;i<=n;i++)bl[i]=(i-1)/blo+1; for(int i=1;i<=bl[n];i++)pre(i); for(int i=1;i<=m;i++) { int a=read(),b=read(); a=(a+ans-1)%n+1;b=(b+ans-1)%n+1; if(a>b)swap(a,b); ans=val[query(a,b)]; printf("%d\n",ans); } return 0;}
太弱还是得抄。。。
0 0
- bzoj2724
- [bzoj2724]蒲公英
- 【Violet 6】【BZOJ2724】蒲公英
- 【bzoj2724】[Violet 6]蒲公英
- bzoj2724: [Violet 6]蒲公英
- BZOJ2724: [Violet 6]蒲公英
- 【bzoj2724】[Violet 6]蒲公英
- 【bzoj2724】【蒲公英】【分块】
- bzoj2724 蒲公英【解法一】
- bzoj2724 蒲公英【解法二】
- BZOJ2724: [Violet 6]蒲公英
- bzoj2724: [Violet 6]蒲公英
- bzoj2724[Violet 6][蒲公英]
- 【bzoj2724】[Violet 6]蒲公英
- [分块] [BZOJ2724] [Violet 6] 蒲公英
- bzoj2724 [Violet 6]蒲公英 分块
- [BZOJ2724][Violet 6]蒲公英(分块)
- BZOJ2724: [Violet 6]蒲公英(分块)
- mysql数据库优化
- 三.容器
- 使用C#开发HTTP服务器系列之实现Get和Post
- UICollectionView 视图滚动到指定位置的方法
- 思科多区域OSPF的配置
- bzoj2724
- centos6.5测试环境,mysql5.6,java8,tomcat8,文件解压,tomcat输出日志
- java基础(九)关键字final/多态/抽象类/关键字abstract/接口
- 二叉排序树转换成双向链表
- 排序算法总结
- 类文件及类加载机制
- 四.文件系统
- 尚学堂所有Java视频下载
- log4j.properties log4j.xml 路径问题