博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【P2564】生日礼物(单调队列)
阅读量:4477 次
发布时间:2019-06-08

本文共 864 字,大约阅读时间需要 2 分钟。

这个题看上去状态比较多,实际上由于题目的输出需要,又因为是一个线性的结构,所以我们可以有一些操作。

这么想,如果我们有了一个满足条件的区间,此时我们缩减左端点,然后判断此时是否还是满足,满足就继续缩减,不满足就伸长右端点,直到下一次又满足条件为止,复杂度差不多O(N)。

#include
#include
#include
#include
#include
#include
#define re register#define ll long longusing namespace std;struct zz{ int a,b;};int b[1000001],h,t,n,m,x,num,minn=999999999,cnt;zz d[1000001],q[1000001];inline bool cmp(zz x,zz y){ return x.a
>n>>m; for(re int i=1;i<=m;i++) { cin>>x; for(re int j=1;j<=x;j++) { cin>>d[++num].a; d[num].b=i; } } h=1;t=0; sort(d+1,d+num+1,cmp); for(re int i=1;i<=n;i++) { q[++t]=d[i]; b[d[i].b]++; if(b[d[i].b]==1) cnt++; while(cnt==m) { minn=min(minn,q[t].a-q[h].a); b[q[h].b]--; if(b[q[h].b]==0) cnt--; h++; } } cout<

 

转载于:https://www.cnblogs.com/victorique/p/8426938.html

你可能感兴趣的文章
ThirdAPI
查看>>
病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法
查看>>
PHP的输出语法
查看>>
潘石屹驳任志强楼市观点:老和尚念经都念15年了
查看>>
数据库事物隔离级别通俗理解
查看>>
js中没有明确判断条件的ifl判断
查看>>
原生js的属性操作
查看>>
sourcetree和Git的使用教程
查看>>
CentOS7 安装lua环境(我是在mysql读写分离用的)
查看>>
小程序踩过的一个小坑---解析二维码decodeURIComponent() url解码
查看>>
CSS—换行
查看>>
eclipse,android studio工具疑惑
查看>>
查看邮件服务器支持的认证方式
查看>>
IT学习网站
查看>>
MySQL where 子句
查看>>
codevs1839 洞穴勘测
查看>>
linux之旅_linux是什么
查看>>
【漏洞预警】CVE-2017-8464 震网三代漏洞复现
查看>>
Mac下如何使用Vim
查看>>
常用js函数整理--common.js
查看>>