当前位置: 首页 > news >正文

打卡信奥刷题(3149)用C++实现信奥题 P7677 [COCI 2013/2014 #5] LADICE

P7677 [COCI 2013/2014 #5] LADICE

题目描述

N NN个物品,L LL个抽屉,每个抽屉只能放1 11个物品,每个物品都能被放进抽屉A i A_iAiB i B_iBi中。

放物品的规则如下(按照顺序执行,即满足条件1 11时就立刻执行,不会执行条件2 22;不满足条件1 11时就判断条件2 22):

  • 1. 1.1.如果抽屉A i A_iAi是空的,就把这个物品放进抽屉A i A_iAi中;

  • 2 22如果抽屉B i B_iBi是空的,就把这个物品放进抽屉B i B_iBi中;

  • 3. 3.3.把抽屉A i A_iAi中的物品移到它的另一个抽屉里;如果这个抽屉也满了,就把这个抽屉里的物品放到它的另一个抽屉里,直到你成功或回到之前遇到过的抽屉为止。如果成功了,就把这个物品放进这个抽屉中;

  • 4. 4.4.把抽屉B i B_iBi中的物品移到它的另一个抽屉里;如果这个抽屉也满了,就把这个抽屉里的物品放到它的另一个抽屉里,直到你成功或回到之前遇到过的抽屉为止。如果成功了,就把这个物品放进这个抽屉中;

  • 5. 5.5.扔掉此物品。

对于给定的每件物品,请你求出哪些物品将被保存,哪些将被扔掉。

输入格式

第一行,两个整数N NNL LL,分别表示物品个数和抽屉个数;

接下来的N NN行,每行两个整数A i A_iAiB i B_iBi,表示物品i ii能被储存的两个抽屉。

输出格式

输出共N NN行,每行一个字符串:

如果该物品成功被保存,输出LADICA

如果该物品被扔掉,输出SMECE

输入输出样例 #1

输入 #1

5 3 1 2 1 3 1 2 1 3 1 2

输出 #1

LADICA LADICA LADICA SMECE SMECE

输入输出样例 #2

输入 #2

9 10 1 2 3 4 5 6 7 8 9 10 2 3 1 5 8 2 7 9

输出 #2

LADICA LADICA LADICA LADICA LADICA LADICA LADICA LADICA LADICA

说明/提示

【样例解释 #1】

物品1 11放入抽屉1 11,物品2 22放入抽屉3 33,物品3 33放入抽屉2 22,物品4 44和物品5 55没有地方放。

【样例解释 #2】

物品1 11放入抽屉1 11,物品2 22放入抽屉3 33,物品3 33放入抽屉5 55,物品4 44放入抽屉7 77,物品5 55放入抽屉9 99,物品6 66放入抽屉2 22,物品8 88放入抽屉8 88

物品7 77的两个抽屉都满了,将抽屉1 11里的物品1 11移到抽屉2 22里,将抽屉2 22里的物品6 66移到抽屉3 33里,将抽屉3 33里的物品2 22移到抽屉4 44里,抽屉4 44是空的,成功放入。

物品9 99的两个抽屉都满了,将抽屉7 77里的物品4 44移到抽屉8 88里,将抽屉8 88里的物品8 88移到抽屉2 22里,将抽屉2 22里的物品1 11移到抽屉1 11里,将抽屉1 11里的物品7 77移到抽屉5 55里,将抽屉5 55里的物品3 33移到抽屉6 66里,抽屉6 66是空的,成功放入。

【数据范围】

对于50 % 50\%50%的数据,1 ≤ N , L ≤ 2000 1\le N,L\le 20001N,L2000

对于100 % 100\%100%的数据,1 ≤ N , L ≤ 3 × 10 5 1\le N,L\le 3\times 10^51N,L3×1051 ≤ A i , B i ≤ L 1\le A_i,B_i\le L1Ai,BiL

【说明】

本题分值按 COCI 原题设置,满分160 160160

题目译自COCI2013_2014 CONTEST #5T6 LADICE

C++实现

#include<iostream>usingnamespacestd;intn,l;constintN=3e5+5;intvis[N],fa[N];intfind(intx){if(fa[x]==x)returnx;returnfa[x]=find(fa[x]);}voidun(intx,inty){x=find(x),y=find(y);if(x!=y)fa[y]=x;}//并查集基本操作intmain(){cin>>n>>l;for(inti=1;i<=l;i++)fa[i]=i;//初始化for(inti=1;i<=n;i++){intx,y;cin>>x>>y;if(vis[find(x)]==0||vis[find(y)]==0){//放得下cout<<"LADICA\n";if(vis[find(x)]==0){//可以执行条件1/3vis[find(x)]=1;//标记un(y,x);}else{//可以执行条件2/4vis[find(y)]=1;//标记un(x,y);}}elsecout<<"SMECE\n";//放不下}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.cnnetsun.cn/news/2036866.html

相关文章:

  • STC89C52单片机玩转NE555:手把手教你实现一个简易频率计(附完整工程)
  • Qwen3.5-9B-GGUF本地AI办公套件:邮件撰写、会议纪要、PPT大纲一体化
  • CardEditor:3MB轻量级桌游卡牌批量生成器,让设计效率提升300%
  • 如何用macOS自动点击器实现高效自动化操作:完整指南
  • 速看!黄金秘籍解决华为防火墙最困难的故障
  • 电商反爬这道墙,Web Unlocker 是怎么翻过去的?
  • 别再乱喂狗了!AutoSar WdgM三种监控机制(Alive/Deadline/Logical)实战配置避坑指南
  • 国家中小学智慧教育平台电子课本解析工具:3分钟极速获取教学资源的终极指南
  • 深度强化学习实战:从零构建游戏AI的Q学习指南
  • 新手必看:CTFHub靶场RCE通关保姆级教程(从环境搭建到Flag获取)
  • 从三相到两相:手把手推导感应电机的Clarke与Park变换(附MATLAB验证代码)
  • 计算机毕业设计:Python股票市场智能分析与LSTM预测系统 Flask框架 TensorFlow LSTM 数据分析 可视化 大数据 大模型(建议收藏)✅
  • 从一次订单失败回滚看Seata AT模式:一个真实微服务事务的完整生命周期
  • 实测10款降AI率工具后,2026年4月最香的是嘎嘎降AI!
  • 3小时掌握SketchUp STL插件:从建模到3D打印的完整实战指南
  • STM32F1系列LIN总线从机节点实战:车窗控制模块模拟与数据解析
  • RAG检索又失败了?Skill-RAG让RAG学会对症下药
  • Docker农业配置必须关闭的7个默认参数(附实测对比数据:CPU占用下降62%,启动延迟压缩至1.8s)
  • 别再为LaTeX三线表头疼了!手把手教你用booktabs和makecell搞定复杂表格(附完整代码)
  • Golang逆向工程实战:构建抖音直播数据实时采集系统
  • YOLO自动标注工具软件
  • 从GitHub到百度云:手把手教你备份和整理吴恩达机器学习全套资源(笔记+代码+视频)
  • 别再手动对齐了!用Creo的骨架模型做装配,效率提升不止一点点
  • 每日一Go-55、分布式 ID 生成(雪花算法 / Segment / Redis / DB)
  • 线性判别分析LDA
  • 保姆级教程:用Image2Lcd和PCtoLCD2002给STM32的OLED屏显示自定义图片(附完整代码)
  • STC8单片机驱动ESP-01S联网实战:从AT指令到GET请求获取苏宁时间(附完整源码)
  • MLOps资源管理优化:从GPU虚拟化到智能调度
  • 手把手教你用LabVIEW驱动Zebra GX420d串口打印机(附完整源码与模板文件)
  • AI与IoT融合:智能边缘计算的应用与挑战