LUOGU P2564 [SCOI2009]生日礼物 (队列+模拟)
2024-09-01 07:12:35
解题思路
还是比较好想的,用一个队列,然后把所有点放在一起排个序,依次入队。每次检查队头元素的种类是否为当前入队元素种类,是的话就一直\(pop\),每次更新答案即可。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
const int MAXN = 1000005;
inline int rd(){
int x=0;char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return x;
}
int n,k,ans=1e9,cnt,num;
int vis[MAXN];
struct Data{
int col,t;
friend bool operator<(const Data A,const Data B){
return A.t<B.t;
}
}data[MAXN],tmp;
queue<int> Q;
int main(){
n=rd();k=rd();int x;
for(int i=1;i<=k;i++){
x=rd();tmp.col=i;
while(x--) {tmp.t=rd();data[++cnt]=tmp;}
}
sort(data+1,data+1+cnt);
for(int i=1;i<=cnt;i++){
Q.push(i);
if(!vis[data[i].col]) num++;vis[data[i].col]=i;
while(Q.size()){
x=Q.front();if(vis[data[x].col]!=x) Q.pop();
else break;
}
if(num==k) ans=min(ans,data[i].t-data[x].t);
}cout<<ans;
return 0;
}
最新文章
- 搞清arguments,callee,caller
- #1015 : KMP算法
- Linux服务器配置git服务
- java thread run and start
- POJ 2449Remmarguts&#39; Date K短路模板 SPFA+A*
- hdu 2897 邂逅明下
- IOS开发网络篇之──ASIHTTPRequest详解
- 武汉科技大学ACM:1007: 陶陶摘苹果
- firefox关于about:config的常用配置
- AbstractHandlerMapping解读
- jquery实现ajax提交表单
- C++ 既有约定
- javaAPI实现elasticsearch5.5.2的聚合分析
- RMQPOJ3264
- PHP 服务器及TP5框架遇到的几个错误
- 数据结构~trie树(字典树)
- jsp中的EL和JSTL的关系
- zookeeper 启动脚本
- 20145109竺文君、20145106石晟荣 java实验三
- https页面证书验证、加密过程简介
热门文章
- Java利用MD5WithRSA签名及DESede加密
- ./vimrc代码解析全
- java两个栈实现一个队列&;&;两个队列实现一个栈
- PHP PDO 大对象 (LOBs)
- LeetCode 1037. Valid Boomerang (有效的回旋镖)
- PAT_A1043#Is It a Binary Search Tree
- Auto.js淘宝领喵币
- Pathfinding 模板题 /// BFS oj21413
- 5个CSS3技术实现设计增强
- BBS论坛 项目表分析