Thor(CF #366 Div. 1)
来源:互联网 发布:卓文网络商学院诈骗 编辑:程序博客网 时间:2024/06/16 10:36
这道题虽然做出来了,但花时间太久了,主要问题在于题意的理解上,WA / TLE了4次,还是理解能力问题,需要加强。
题目大意:一个人的手机上有 n 个app,每个app都会有提示信息。然后给出 q 个事件,所有事件可以分为三类,第一类是,app x 发出一条信息;第二类是,这个人将app x 的所有信息都读完了;第三类是,这个人读了前 t 条信息。题意模糊在第三类,他读了前 t 条信息,指的是在前一次处理(第三类的处理)的基础上继续往下读 t 条。附链接:http://codeforces.com/problemset/problem/704/A。
大体思路:开辟一个数组 app[ maxn ] 记录第 i 个app的信息数量,数组order[ maxn ] 按顺序(从1到p编号)记录每条信息属于哪个 app,vis[ maxn ] 的作用是,当进行第二类处理时,vis[ i ] 记录当时的编号顺序。
以下为ac代码:
#include<iostream>#include<cstring>using namespace std;const int maxn=300005;int app[maxn];int order[maxn]; //存的内容为app的编号,下标代表第几个事件int vis[maxn];int main(){ int n,q; memset(app,0,sizeof(app)); memset(vis,0,sizeof(vis)); cin>>n>>q; int cnt=0; //记录事件编号,从1开始 int type,num; int left=0; //剩余的未读信息 int last=1; //第三类处理初始化,从1开始 while(q--){ cin>>type>>num; if(type==1){ ++app[num]; ++left; order[++cnt]=num; //按事件编号顺序记录,内容为app的编号 } else if(type==2){ left-=app[num]; app[num]=0; vis[num]=cnt; //将当前的事件编号存到第i个app的vis中 } else{ while(last<=num){ //从上一次的基础开始!!! if(last>vis[order[last]]){ //当last小于或等于vis[order[last]],说明第last条信息已经读过了 --left; --app[order[last]]; } ++last; } } cout<<left<<endl; } return 0;}
0 0
- Thor(CF #366 Div. 1)
- [CF# 366 Thor] STL模拟
- Codeforces Round #366 (Div. 2) C. Thor
- Codeforces Round #366 (Div. 2) C. Thor
- Codeforces Round #366 (Div. 2) Thor
- Codeforces Round #366 (Div. 2)-C. Thor
- Codeforces Round #366 (Div. 2) C.Thor
- CF 704A Thor
- Codeforces Round #366 (Div. 2) C. Thor (模拟)
- Codeforces Round #366 (Div. 2) C. Thor(模拟)
- Codeforces #366(Div.2) C. Thor【思维】
- Codeforces Round #366 (Div. 2) C. Thor (模拟)*
- Codeforces Round #366 (Div. 2) C. Thor (队列模拟)
- 【Codeforces Round #366 Div. 2】 705C Thor
- Codeforces Round #366 (Div. 2) C. Thor 数据结构、队列优化
- cf 219 div 1
- CF #233 div. 1
- CF#263 (Div. 1) A
- 目录未找到或者无法访问./data/template 【已解决】
- js函数
- keras 指定程序在某块卡上训练
- Android ButterKnife 8.5.1使用
- Caffe 训练时loss等于87.33的原因及解决方法
- Thor(CF #366 Div. 1)
- 怎么使用 . 和 -> (. 和->的使用方法和区别)
- BootAnimation使用surfaceflinger分析
- leetcode_middle_68_279. Perfect Squares
- 2017年3月规划
- Maven内置了三大特性:属性、Profile和资源过滤来支持构建的灵活性。
- Tuleap ,一个用于软件项目管理的平台
- Eclipse导入已有的项目后项目报错的解决办法
- 127.0.0.1和0.0.0.0