bzoj1293: [SCOI2009]生日礼物 单调队列
2017-10-15 22:51
190 查看
题意:一条x轴,上面n个,k种珠子,让你找一个最小长度,使得里面有k种珠子存在。
单调队列裸题啦,相信各位dalao看见单调队列就知道怎么做了。
只是为什么你们都这么长呢?
单调队列裸题啦,相信各位dalao看见单调队列就知道怎么做了。
只是为什么你们都这么长呢?
#include<cstdio> #include<algorithm> #include<cstring> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) using namespace std; const int N=1e6+5; int n,m,k; struct node { int x,y; }a ; int q ,num ; bool cmp(node a,node b) { return a.x<b.x; } int main() { scanf("%d%d",&n,&k); int tot=0; fo(i,1,k) { int x; scanf("%d",&x); fo(j,1,x) { int y; scanf("%d",&y); a[++tot].x=y,a[tot].y=i; } } sort(a+1,a+1+tot,cmp); int t=1,w=0,ans=1e9; fo(i,1,tot) { q[++w]=i;num[a[i].y]++; while (t<=w&&num[a[q[t]].y]>1)num[a[q[t++]].y]--; bool flag=0; fo(j,1,k)if (!num[j])flag=1; if(!flag)ans=min(ans,a[q[w]].x-a[q[t]].x); } printf("%d\n",ans); return 0; }
相关文章推荐
- bzoj1293 [SCOI2009]生日礼物 单调队列
- [bzoj1293][SCOI2009]生日礼物(单调队列)
- 【bzoj 1293】[SCOI2009]生日礼物(乱搞|单调队列)
- bzoj 1293: [SCOI2009]生日礼物 (单调队列)
- [bzoj1293][SCOI2009]生日礼物 单调队列优化dp
- [BZOJ 1293][SCOI2009]生日礼物:单调队列
- [BZOJ1293][SCOI2009]生日礼物(单调队列)
- BZOJ 1293: [SCOI2009]生日礼物【单调队列】
- bzoj 1293: [SCOI2009]生日礼物【单调队列】
- BZOJ1293 [SCOI2009]生日礼物 【队列】
- [BZOJ 1293] SCOI 2009 生日礼物 · 单调队列
- [SCOI2009]生日礼物(单调队列)
- bzoj1293【SCOI2009】生日礼物
- bzoj1296 [SCOI2009]粉刷匠 分组背包/单调队列优化
- bzoj1293 [SCOI2009]生日礼物
- bzoj1293[SCOI2009]生日礼物 尺取法
- bzoj1293: [SCOI2009]生日礼物
- [luoguP2564] [SCOI2009]生日礼物(队列)
- bzoj1293: [SCOI2009]生日礼物(堆)
- BZOJ1293 [SCOI2009]生日礼物