1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

  • 把 Bob 的出拳看成三类:出 0、出 1、出 2,分别计数为 cntB[0..2]。

  • Alice 手里分别有 a 个 0、b 个 1、c 个 2(总和等于 n)。 胜负规则是:1 胜 0,2 胜 1,0 胜 2。

  • 为了让胜场最大,显然应当把 Alice 能赢的对局尽量“按类型匹配”:

    • Bob 出 0 时,用 Alice 的 1 去赢:可赢 min(cntB[0], b) 场;
    • Bob 出 1 时,用 Alice 的 2 去赢:可赢 min(cntB[1], c) 场;

P4287.第3题-猜拳

    1000ms Tried: 43 Accepted: 7 Difficulty: 4 所属公司 : 中国电信
    算法与标签>贪心算法

题目内容

Alice 与 Bob 进行 nnn 回合猜拳,出拳用数字表示:0、1、20、1、20、1、2,其中 111 打败 000 ,222 打败 111,000 打败 222 (其他情况视为 Alice 不胜)。

你已知 Bob 接下来每一回合的出拳序列。Alice 事先准备了 aaa 个 0、b0、b0、b 个 1、c1、c1、c 个 222 (保证 a+b+c=na+b+c=na+b+c=n ),每回合必须恰好出一拳,且各拳种的使用次数分别不超过 a,b,ca,b,ca,b,c 。

请你在这些限制下,合理安排 Alice 每一回合的出拳顺序,使得赢的回合数最大,并输出最多能赢的回合数。

输入描述

每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤105)T(1≤T≤ 10^5)T(1≤T≤105) 代表数据组数,每组测试数据描述如下:

第一行输入一个整数 n(1≤n≤105)n(1≤n≤10^5)n(1≤n≤105) 。

第二行输入 nnn 个整数 s1,...,sn(si∈s_1,...,s_n(s_i∈s1​,...,sn​(si​∈{0,1,20,1,20,1,2}))).表示 Bob 每回合的出拳。

第三行输入三个整数 a,b,ca,b,ca,b,c , 表示 Alice 拥有的 0,1,20,1,20,1,2 的数量,保证 a+b+c=na+b+c=na+b+c=n 。

保证所有测试中 nnn 的总和不超过 2×1052×10^52×105 。

输出描述

输出 TTT 行,每行一个整数,表示在最优安排下 Alice 最多能赢的回合数。

样例1

输入

3
5
0 1 2 0 1
2 2 1
3
2 2 2
3 0 0
4
0 1 2 2
1 1 2

输出

4
3
3

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 397ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?