4.25美团笔试 专项题 求解

一道子弹、防护罩的题
调了好久只有55%
有没有大佬解释,发份代码研究一下
#笔试题目##美团#
全部评论
#define ll long long const int N = 1e5 + 2; int Q,n,m,k,q[N],e[N]; struct P { int t,r; } p[N]; bool vis[N],fir[N]; set<int>st; int main() { scanf("%d %d %d",&n,&m,&k); for(int i = 1; i <= k; ++ i) { scanf("%d",q + i); st.insert(q[i]); } st.insert(-1); for(int i = 1; i <= m; ++ i) scanf("%d %d",&p[i].t,&p[i].r); int id = k,nid = 0; bool f = true; for(int i = 1; i <= m; ++ i) { if(!vis[p[i].r]) { vis[p[i].r] = true; fir[i] = true; } else { auto d = st.upper_bound(p[i].t); -- d; if((*d) == -1) { f = false; } else { st.erase((*d)); } } } if(f) { for(auto x : st) { if(x != -1) { e[++ nid] = x; } } for(int i = m; i >= 1; -- i) { if(fir[i]) { while(nid >= 1 && e[nid] >= p[i].t)  -- nid; if(nid >= 1) { vis[p[i].r] = false; -- nid; } } } int ans = n; for(int i = 1; i <= n; ++ i) ans = ans - vis[i]; printf("%d\n",ans); } else puts("-1"); return 0; }
点赞 回复 分享
发布于 2021-04-25 13:22

相关推荐

MGlory:我当初有一个老师告诉我简历要写的简单,最好只一面,项目可以写核心的,进面了自然会问你的
点赞 评论 收藏
分享
03-27 20:14
前端工程师
投票
Spring启动:我在一嗨呆过,这么说吧 神仙单位,除了工资不怎么好 剩下的基本上天花板了,上班下班跟公务员似的,一天工作7个点,提供宿舍,宿舍离公司1km, 项目不着急,一般来说1天的活,你要个4天没人管你,我一天上班4个点在微信上跟别人聊天😂 去那边老自在了 但是也有可能是 我们组比较好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务