BZOJ1293(SCOI2009)[生日礼物]--维护区间
2017-12-02 10:01
176 查看
【链接】
bzoj1293
【解题报告】
跟NOIP2016普及组T3一样。。。
维护一段有m种颜色的区间,然后挑小的距离就行了。
bzoj1293
【解题报告】
跟NOIP2016普及组T3一样。。。
维护一段有m种颜色的区间,然后挑小的距离就行了。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1000005,maxm=65,INF=((1<<30)-1)*2+1; int n,m,now,ans,num[maxm]; struct Point { int s,id; bool operator < (const Point &a) const{ return s<a.s; } }a[maxn]; int main() { freopen("1293.in","r",stdin); freopen("1293.out","w",stdout); scanf("%d%d",&n,&m); n=0; ans=INF; for (int i=1,len; i<=m; i++) { scanf("%d",&len); for (int j=1; j<=len; j++) scanf("%d",&a[++n].s),a .id=i; } sort(a+1,a+1+n); now=0; memset(num,0,sizeof(num)); for (int i=1,j=1; j<=n; j++) { if (!num[a[j].id]) now++; num[a[j].id]++; while (i<=j&&num[a[i].id]>1) num[a[i].id]--,i++; if (now==m&&a[j].s-a[i].s<ans) ans=a[j].s-a[i].s; } printf("%d",ans); return 0; }
相关文章推荐
- BZOJ1293 [SCOI2009]生日礼物
- bzoj1293 [SCOI2009]生日礼物 set暴力
- 【bzoj 1293】[SCOI2009] 生日礼物 指针维护队列
- bzoj1293: [SCOI2009]生日礼物 单调队列
- bzoj1293 [SCOI2009]生日礼物
- bzoj1293: [SCOI2009]生日礼物
- bzoj1293 [SCOI2009]生日礼物 单调队列
- bzoj1293【SCOI2009】生日礼物
- bzoj1293: [SCOI2009]生日礼物
- BZOJ1293: [SCOI2009]生日礼物
- BZOJ1293 [SCOI2009]生日礼物 【队列】
- bzoj1293[SCOI2009]生日礼物 尺取法
- bzoj1293: [SCOI2009]生日礼物(堆)
- BZOJ1293: [SCOI2009]生日礼物
- [bzoj1293][SCOI2009]生日礼物(莫队)
- 【SCOI2009】生日礼物
- 1293: [SCOI2009]生日礼物
- [BZOJ 1293][SCOI2009]生日礼物:单调队列
- bzoj1293: [SCOI2009]生日礼物 贪心
- 【BZOJ1296】[SCOI2009]粉刷匠【区间DP】【背包DP】