codeforces 704A (队列模拟) Thor
题目:这里
题意:n个app,q个操作,当操作数type为1的时候表示y这个app推送了你一条消息,当操作数type为2的时候表示将y这个app已推送的所有消息都读完,当操作数为3的时候
表示将已经推送的前(按推送的时间顺序)y条消息再读一遍(不管这前y条消息中有没有读过的,都再读一遍),问每次操作的时候的未读的消息数是多少?
用队列来模拟就好,记得每次要输出的是所有app的没有读过的消息的总数就行,不要想的太细,把读过的标记一下就行,总是觉得这个会超时,但是一想这才是2的第三题,1
的第一题,应该不会那么卡时间,所有就大着胆子写了。
//队列只要记录cas就行了,并不需要记录y
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std; const int M = 3e5 + ;
bool vi[M];
queue<pair<int,int> >q[M]; int main()
{
int n,m;
long long ans=;
scanf("%d%d",&n,&m);
int po=,cas=,r=;
memset(vi,false,sizeof(vi));
while (m--)
{
int x,y;
scanf("%d%d",&x,&y);
if (x==) q[y].push(make_pair<int,int>(y,++cas)),ans++;
else if (x==) {
while (!q[y].empty())
{
int w=q[y].front().second;
if (vi[w]==false) ans--;
vi[w]=true;
q[y].pop();
}
}
else {
for (int i=po ; i<=min(cas,y) ; i++)
{
if (vi[i]==false) ans--;
vi[i]=true;
}
po=max(po,y);
}
printf("%I64d\n",ans);
}
return ;
}
codeforces 704A (队列模拟) Thor的更多相关文章
- Codeforces 704A Thor 队列模拟
题目大意:托尔有一部手机可执行三种操作 1.x APP产生一个新消息 2.读取x App已产生的所有消息 3.读取前t个产生的消息 问每次操作后未读取的消息的数量 题目思路: 队列模拟,坑点在于竟然卡 ...
- python--递归(附利用栈和队列模拟递归)
博客地址:http://www.cnblogs.com/yudanqu/ 一.递归 递归调用:一个函数,调用的自身,称为递归调用 递归函数:一个可以调用自身的函数称为递归函数 凡是循环能干的事,递归都 ...
- PTA 银行排队问题之单队列多窗口加VIP服务 队列+模拟
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙.当有窗口空闲时,下一位顾客即去该窗口处理事务.当有多个窗口可选择时,假设顾客总是选择编号最小的窗口. 有些银行会给 ...
- 原生JS实现队结构及利用队列模拟‘击鼓传花’游戏
1. 前言 队列,是一种遵从先进先出(FIFO,First-In-First-Out)原则的有序集合.队列在尾部添加新元素,并从顶部移除元素,最新添加的元素必须排在队列的末尾. 2.功能说明 enqu ...
- 两队列模拟一个栈,python实现
python实现两个队列模拟一个栈: class Queue(object): def __init__(self): self.stack1=[] self.stack2=[] def enqueu ...
- 【模拟】Codeforces 704A & 705C Thor
题目链接: http://codeforces.com/problemset/problem/704/A http://codeforces.com/problemset/problem/705/C ...
- Codeforces 631C. Report 模拟
C. Report time limit per test:2 seconds memory limit per test:256 megabytes input:standard input out ...
- hdu-5929 Basic Data Structure(双端队列+模拟)
题目链接: Basic Data Structure Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- Codeforces 389B(十字模拟)
Fox and Cross Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Submi ...
随机推荐
- <fmt:formatDate>标签的输出格式:
<fmt:formatDate>标签的输出格式: d 月中的某一天.一位数的日期没有前导零. dd 月中的某一天.一位数的日期有一个前导零. ddd 周中 ...
- bcm cmd
BCM.1> port ge en=0 ;Disable all GbEBCM.1> tx 2 pbm=ge2,fe7 ;Transmit 2 packets out of both po ...
- 25. vm安装redhat步骤
详见:http://jingyan.baidu.com/article/49ad8bce532c525834d8fa19.html
- centos6.5 用户管理
linux 用户管理 命令:useradd 选项: -c comment 备注信息 -d 用户目录 usr/test 不存在 则 -m test 创建 -s shell文件,指定用户的登录Shell. ...
- AES加密补位填充的一个问题
AES加密支持多种填充方式,NoPadding,PKCS5Padding,ISO10126Padding,ZerosPadding,PKCS7Padding. 其中PKCS7Padding 就是数据个 ...
- xml ---DOM操作
package day03.xml; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; ...
- EJDK, Raspberry Pi, and NetBeans IDE 8
https://blogs.oracle.com/geertjan/entry/youtube_ejdk_raspberry_pi_and
- 使用用Generic.xaml加载默认的主题资源
把Resource嵌入到Generic.xaml文件中,并把该文件放到应用程序的Themes主题文件夹下面,这们Generic.xaml文件中的资源就可以被系统识别为默认主题一部分,从而进行使用. 为 ...
- 阿里中间件——diamond
一.前言 最近工作不忙闲来无事,仔细分析了公司整个项目架构,发现用到了很多阿里巴巴集团开源的框架,今天要介绍的是中间件diamond. 二.diamond学习笔记 1.diamond简介 diamon ...
- VFP正则表达式判断是否是手机号码/电子邮件
正则表达式,可以理解为字符匹配或搜索技术 ,重要的是Pattern属性的写法. *--判断是否是手机号码Function isMobiPhoneLparameters cStroRegExp=Newo ...