【P2564】生日礼物(单调队列)
2024-10-20 20:31:23
这个题看上去状态比较多,实际上由于题目的输出需要,又因为是一个线性的结构,所以我们可以有一些操作。
这么想,如果我们有了一个满足条件的区间,此时我们缩减左端点,然后判断此时是否还是满足,满足就继续缩减,不满足就伸长右端点,直到下一次又满足条件为止,复杂度差不多O(N)。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define re register
#define ll long long
using namespace std;
struct zz
{
int a,b;
};
int b[],h,t,n,m,x,num,minn=,cnt;
zz d[],q[];
inline bool cmp(zz x,zz y)
{
return x.a<y.a;
}
int main()
{
cin>>n>>m;
for(re int i=;i<=m;i++)
{
cin>>x;
for(re int j=;j<=x;j++)
{
cin>>d[++num].a;
d[num].b=i;
}
}
h=;t=;
sort(d+,d+num+,cmp);
for(re int i=;i<=n;i++)
{
q[++t]=d[i];
b[d[i].b]++;
if(b[d[i].b]==)
cnt++;
while(cnt==m)
{
minn=min(minn,q[t].a-q[h].a);
b[q[h].b]--;
if(b[q[h].b]==)
cnt--;
h++;
}
}
cout<<minn;
}
最新文章
- 将自己的项目上传到github保管
- 提升PHP编程效率的20个要素
- pkcs1与pkcs8格式RSA私钥互相转换
- 算法:KMP算法
- IOS textField(textview)字数判断
- Swift-Switch穿透
- FW: javascripts 要不要加引号
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合
- PHP正则匹配邮件地址、URL
- (转)在Winform程序中设置管理员权限及为用户组添加写入权限
- Android Handler使用实例
- 基于 JQUERY 网页 banner
- MVC笔记3:JQuery AutoComplete组件
- 微信退款流程,以及在过程中遇见的错误和解决方式(php 语言)
- JAVA实现网页上传头像
- Docker Centos6 下建立 Docker 桥接网络
- dojo中的dojox/grid/EnhancedGrid表格报错
- MongoDB学习(操作集合中的文档)
- Effective STL 读书笔记
- [LeetCode] Serialize and Deserialize N-ary Tree N叉搜索树的序列化和去序列化
热门文章
- 服务器之FRU
- 表变量、临时表(with as ,create table)
- MySQL中enum类型数据,要传入字符串
- HTML5新增的语义标签和IE版本低的兼容性问题
- Django项目部署(django+guncorn+virtualenv+nginx)
- 通过less 计算 得出图片均分布局
- qs.parse()、qs.stringify()、JSON.stringify() 用法及区别
- Google Cloud Platfrom中使用Linux VM
- JQuery 获取父元素方法
- 每天一个Linux命令(43)at命令