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

打卡信奥刷题(3075)用C++实现信奥题 P7006 [NEERC 2013] Kabaleo Lite

P7006 [NEERC 2013] Kabaleo Lite

题目描述

有一种棋盘游戏:棋盘上有nnn个格子,每个格子上可以堆叠若干个有颜色的筹码,只有每个格子中最上方的筹码的颜色是可见的。

参加游戏的每个玩家都有各自不同的一个目标颜色,以及一些彩色筹码。每个人只知道自己的目标颜色,但各自拥有的筹码颜色和数量都是公开的。每个回合中,所有玩家轮流在棋盘上选一个格子放置筹码,同时覆盖下方的筹码。游戏结束后,数出棋盘上可见筹码数最多的颜色,以该颜色为目标颜色的玩家即获胜。若该颜色不是任何玩家的目标颜色,或者棋盘上出现最多的颜色不唯一,则游戏平局。

现在,一局游戏进行到了最后,你和其他所有玩家都只剩最后一个筹码。现在恰好轮到你操作,在不知道其他人的目标颜色的前提下,你想知道你一共有哪些操作可以保证必胜。

输入格式

第一行444个整数n,p,c,hn,p,c,hn,p,c,h,分别表示棋盘格数、玩家数、筹码颜色总数和你的目标颜色;

第二行nnn个整数bib_ibi,表示棋盘上现有的筹码颜色,棋盘格编号从111开始;

第三行ppp个整数lil_ili,表示每个玩家的最后一枚筹码的颜色,玩家编号从你开始。

输出格式

第一行111个整数www,表示你有多少种必胜操作。

第二行www个整数mim_imi,表示你应该把筹码放在哪个格子上。顺序不限。

输入输出样例 #1

输入 #1

6 3 4 2 2 1 2 3 2 2 2 1 1

输出 #1

1 2

说明/提示

1≤n≤1061\leq n\leq 10^61n1061≤p≤c≤1061\leq p\leq c\leq 10^61pc1061≤h,bi,li≤c1\leq h,b_i,l_i\leq c1h,bi,lic

C++实现

#include<bits/stdc++.h>#defineR(i,a,b)for(inti=(a),i##E=(b);i<=i##E;i++)#defineL(i,a,b)for(inti=(b),i##E=(a);i>=i##E;i--)usingnamespacestd;intn,p,c,h;intb[1111111],cnt[1111111];intl[1111111];vector<int>ans;intmx,mmx,cy;inlineintcheck(intx){if(n==1&&l[p]==h)return1;--cnt[b[x]];++cnt[l[1]];intdel=cnt[h]-cy;boolok=1;if(del<=0)ok=0;if(cnt[mx]>=del)ok=0;if(cnt[mmx]>=del)ok=0;if(l[1]!=h&&cnt[l[1]]>=del)ok=0;++cnt[b[x]];--cnt[l[1]];returnok;}signedmain(){ios::sync_with_stdio(false);cin.tie(NULL);cin>>n>>p>>c>>h;R(i,1,n)cin>>b[i],++cnt[b[i]];R(i,1,p)cin>>l[i];R(i,2,p)if(l[i]!=h)++cy,++cnt[l[i]];R(i,1,c)if(i!=h){if(cnt[i]>cnt[mx])mmx=mx,mx=i;elseif(cnt[i]>cnt[mmx])mmx=i;}R(i,1,n)if(check(i))ans.emplace_back(i);cout<<ans.size()<<endl;for(intx:ans)cout<<x<<' ';cout<<endl;}

后续

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

http://www.jsqmd.com/news/603111/

相关文章:

  • KEIL5项目配置全攻略:从晶振频率到RAM分配,手把手教你避开那些坑
  • 华硕笔记本性能优化新选择:5分钟摆脱Armoury Crate臃肿体验
  • 2026雅思阅读在线直播课程指南:高效提分与名师精讲全解析 - 品牌2025
  • StructBERT零样本分类-中文-base镜像免配置指南:Jupyter端口映射7860直连Gradio
  • RetinaFace人脸检测模型效果展示:关键点绘制精准度实测
  • Z-Image-Turbo_Sugar脸部LoraGradio用户体验优化:添加‘一键复制提示词’与‘示例库’按钮
  • 效率提升神器:用快马AI自动诊断并修复npm 128错误,节省排错时间
  • 能源管理行业专用边缘计算盒子哪家好?2026年主流厂商盘点 - 品牌2026
  • 终极指南:HTTPS-PORTAL数据持久化方案——证书与配置的安全存储策略
  • 直驱式与双馈风电机组发电机:结构差异与适用场景深度解析
  • 全平台网络资源高效捕获实战指南:res-downloader从入门到精通
  • RWKV7-1.5B-g1a部署教程:Docker run命令直启镜像,绕过supervisor手动调试法
  • G-Helper:华硕笔记本性能调优的轻量级解决方案
  • G-Helper华硕笔记本控制中心:告别臃肿,拥抱极致轻量化
  • 如何在 MySQL 中实现基于全字段唯一性的重复行计数更新.txt
  • G-Helper焕新体验:解放华硕设备性能的轻量级控制中心
  • 医院污水处理设备哪家技术强?高性能生产厂家推荐 -专业医院污水处理设备实力供应商排行榜 - 品牌推荐大师
  • 如何在Windows系统中轻松访问Linux分区?Ext2Read的5个实用技巧
  • Docker容器化DNS服务器搭建实战:从零到企业级部署
  • 文本文件批量转 UTF-8 与「仅检测编码」操作备忘
  • 【2026实测】Everything官网下载中文版:Everything文件搜索工具使用指南 - xiema
  • Oracle DBMS_RANDOM 实战指南:从基础语法到企业级应用
  • 2025年Cursor AI全方位突破:免费畅享Pro功能完整指南
  • 实战指南 | 工业场景下四大信号降噪算法深度解析与选型
  • Windows 11系统优化终极指南:如何用Win11Debloat去除预装软件与隐私追踪
  • Elasticsearch RTF安全配置终极指南:X-Pack安装与免费License申请教程
  • 追剧学英语,别再“自欺欺人”了!字幕学让你看透每个单词
  • 系统崩溃不用慌:盘姬工具箱应急处理方案
  • C++量子编程性能瓶颈突破(LLVM+OpenMP+SIMD三重硬化实录)
  • 突破RAID启动壁垒:Ventoy 3步轻松搞定复杂存储阵列引导