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

题解:AT_abc166_f [ABC166F] Three Variables Game

题目

思路

这是一道比较简单的贪心题。

不断地分类讨论。哪一个小就加一,另一个就减一。如果两个都相等时,就判断下一个,有相同的就加一,另一个减一,如果都没有相同的,就随便加减。如果两个都为 $0$ 时,就直接输出 No 即可。

Code

代码有点长。额。

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,a,b,c;
string s[100005],ans;
signed main(){scanf("%lld%lld%lld%lld",&n,&a,&b,&c);for(int i=1;i<=n;i++)cin>>s[i];for(int i=1;i<=n;i++){if(s[i]=="AB"){if(a==0&&b==0) {puts("No");return 0;}if(a>b){b++,a--;ans+='B';}else if(a<b){b--,a++;ans+='A';}else{if(s[i+1]=="BC"){b++;a--;ans+='B';}else if(s[i+1]=="AC"){a++;b--;ans+='A';}else{a++;b--;ans+='A'; }}}if(s[i]=="AC"){if(a==0&&c==0){puts("No");return 0;}if(a>c){c++;a--;ans+='C';}else if(a<c){c--,a++;ans+='A';}else{if(s[i+1]=="AB"){a++;c--;ans+='A';}else if(s[i+1]=="BC"){c++;a--;ans+='C';}else{a++;c--;ans+='A';}}}if(s[i]=="BC"){if(c==0&&b==0){puts("No");return 0;}if(c>b){b++;c--;ans+='B';}else if(c<b){b--,c++;ans+='C';}else{if(s[i+1]=="AC"){c++,b--;ans+='C';}else if(s[i+1]=="AB"){b++;c--;ans+='B';}else{b++;c--;ans+='B';}}}}puts("Yes");for(int i=1;i<=n;i++){cout<<ans[i-1]<<"\n";}return 0;
}

如有问题,请指出错误。

谢谢!

http://www.gsyq.cn/news/37803.html

相关文章:

  • CCF CSP-S2 2025 游记
  • 【EF Core】“多对多”关系与跳跃导航
  • 2025.11.2博客
  • 为啥slmbuild的cutoff不能设得很大
  • 团队项目1-团队展示选题-图书管理系统
  • 第二天,学习部分快捷键位(重点加粗)
  • windows terminal 配置文件
  • VRP基本配置命令
  • 解码LVGL样式
  • 20231302邱之钊密码系统设计实验二一
  • 2025 年 11 月运动木地板厂家最新推荐,成分精纯与效能升级!—— 产能、专利、环保三维数据透视
  • 2025 年 11 月运动木地板厂家最新推荐,成分焕新与效能强化!—— 精准检测与稳定性能深度解析
  • JavaScript中的闭包:原理、应用与代码
  • React Hooks:提升前端开发效率的关键
  • 【图文详细】用HBuilder X写PHP并且能够在浏览器运行打开 - 昵
  • 题解:uoj695 【候选队互测2022】毛估估就行
  • 华为Matebook清灰之后扬声器没声音
  • string.replace替换null
  • 类和对象-多态project09
  • CF1730D Prefixes and Suffixes
  • 广告投放名词
  • [LangChain] Runnable接口 - 1
  • 初识目标检测
  • LVGLSharp:LVGL的C#绑定库介绍
  • 论文应该这样读(How to Read a Paper)
  • range()
  • MySQL数据库常用命令
  • Zabbix执行Ping脚本报错,Global script execution被禁用
  • 2025 年 11 月氨糖厂家最新推荐,高性能与可靠性兼具的优质品牌
  • 构建现代Web应用:使用React框架打造单页面应用