BZOJ1293: [SCOI2009]生日礼物
2018-01-21 20:15
453 查看
这题和noip2016普及组的第三题类似啊= =,直接哈希动态做一下就好了。
代码如下:
代码如下:
#include<cstdio> #include<string> #include<algorithm> using namespace std; const int maxn=1000005; int n,m,n1,tail,ans,hsh[maxn]; struct dyt{ int x,id; bool operator <(const dyt &b) const{return x<b.x;} }a[maxn]; inline int read(){ int x=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar(); return x; } int main(){ n=read(); m=read(); for (int i=1;i<=m;i++) { int x=read(); for (int j=1;j<=x;j++) {n1++; a[n1].x=read(); a[n1].id=i;} } sort(a+1,a+1+n1); int all=0; ans=1<<30; for (int i=1;i<=n1;i++) { if (i!=1) {hsh[a[i-1].id]--; if (hsh[a[i-1].id]==0) all--;} while (tail<n1&&all<m) {tail++; hsh[a[tail].id]++; if (hsh[a[tail].id]==1) all++;} if (all==m) ans=min(ans,a[tail].x-a[i].x); } printf("%d\n",ans); return 0; }
相关文章推荐
- BZOJ1293: [SCOI2009]生日礼物
- [BZOJ1293][SCOI2009]生日礼物(单调队列)
- 【bzoj 1293】[SCOI2009]生日礼物(乱搞|单调队列)
- 【bzoj 1293】[SCOI2009]生日礼物
- BZOJ 1293: [SCOI2009]生日礼物【毛毛虫】
- [bzoj1293][SCOI2009]生日礼物(单调队列)
- BZOJ 1293: [SCOI2009]生日礼物【单调队列】
- [bzoj-1293][SCOI2009]生日礼物 题解
- bzoj 1293: [SCOI2009]生日礼物
- BZOJ系列1293《[SCOI2009]生日礼物》题解
- [bzoj1293][SCOI2009]生日礼物(莫队)
- 【BZOJ 1293】【SCOI 2009】生日礼物
- [BZOJ1293]SCOI2009生日礼物|贪心
- bzoj 1293: [SCOI2009]生日礼物
- BZOJ 1293 [SCOI2009] 生日礼物 题解与分析
- [bzoj1293][SCOI2009]生日礼物
- [bzoj1293][SCOI2009]生日礼物 单调队列优化dp
- [bzoj 1293] [SCOI2009]生日礼物
- 【BZOJ】【1293】【SCOI2009】生日礼物
- bzoj 1293: [SCOI2009]生日礼物