首页 > 其他分享 >[luoguP10608]双人游戏

[luoguP10608]双人游戏

时间:2024-06-21 10:43:25浏览次数:26  
标签:lang 字符 rang 游戏 填入 luoguP10608 char int 双人

题目信息

原题链接
来源:[LGR-190]2024洛谷6月月赛II Div1 T1/Div2 T3

题意

长度为\(n\)的序列\(s\),其中只包含BW和\(m\)个_。给定长度为\(m\)的序列\(O=[\lang c_1,x_1\rang, \lang c_2,x_2\rang, \cdots,\lang c_m,x_m\rang](c_i\in\{\mathtt{R}, \mathtt{M}\},s_{x_i}=\text{'_'})\),表示玩家小\(c_i\)需要将\(s_{x_i}\)修改为BW,且\(O\)对小R和小M公开。
小R希望极长同色连续段数(定义见原题)尽可能多,小M希望极长同色连续段数尽可能少,求经过序列\(O\)的操作后,极长同色连续段数的数量

赛时

Subtask害人不浅
image
在经历\(1.5h\)成功切下\(B2\)后,蒟蒻开始思考\(C\)
由于序列\(O\)对双方公开,所以对双方来说,即使需要按照\(O\)的顺序来操作,双方的操作也可以视为无序,因此我们可以将\(c_i\)直接填入\(s\)中。
假设\(O\)中只有\(\lang c_m,x_m \rang\)没有操作,若\(c_m=\text{R}\),则可能存在三种情况

  1. \(s_{x_i - 1} = s_{x_i + 1}\),此时选择与\(s_{x_i - 1}\)和\(s_{x_i + 1}\)相反的字符填入
  2. \(s_{x_i - 1} \ne s_{x_i + 1}\),此时选择与\(s_{x_i - 1}\)或\(s_{x_i + 1}\)相反的字符填入均可
  3. \(x_i = 1\)或\(x_i = n\),此时选择与\(s_{x_i}\)相邻字符的相反的字符填入即可

综上,我们发现,对于小R来说,选择与相邻字符相反的字符就是最优答案
同理,对小M来说,选择与相邻字符相反的字符就是最优答案

后来蒟蒻因为造出了\(m=n\)的hack数据,导致以为自己操作无序的结论证假,当场10pts跑路

赛后

事实上,操作无序的结论是正确的,只是因为蒟蒻没有深入考虑\(m=n\)的情况。
当\(m=n\)时,由于小\(c_1\)不管将\(s_{x_1}\)修改为什么,都不会影响输出的结果,因此,只需要将\(s_{x_1}\)任意修改为BW即可
同时,也有可能出现__________B的情况,此时,只需要从后向前再次扫描即可解决

代码

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 200005;

char g[N];
int n, m;

char inv(char c){
    return c == 'B' ? 'W' : 'B';
}

bool valid(char c){
    return c == 'B' || c == 'W';
}

int main(){
    scanf("%d%d", &n, &m);
    scanf("%s", g + 1);
    while (m -- ) {
        char op[2];
        int x;
        scanf("%s%d", op, &x);
        g[x] = *op;
        if (m == n - 1) g[x] = 'B';
    }

    for (int i = 2; i <= n; i ++ ){
        if (g[i] == 'B' || g[i] == 'W') continue;
        if (g[i] == 'M' && valid(g[i - 1])) g[i] = g[i - 1];
        else if (g[i] == 'R' && valid(g[i - 1])) g[i] = inv(g[i - 1]);
    }
    
    for (int i = n - 1; i; i -- ){
        if (g[i] == 'B' || g[i] == 'W') continue;
        if (g[i] == 'M' && valid(g[i + 1])) g[i] = g[i + 1];
        else if (g[i] == 'R' && valid(g[i + 1])) g[i] = inv(g[i + 1]);
    }

    int ans = 0;
    for (int i = 1; i <= n; i ++ )
        if (g[i] != g[i - 1]) ans ++ ;

    printf("%d\n", ans);

    return 0;
}

标签:lang,字符,rang,游戏,填入,luoguP10608,char,int,双人
From: https://www.cnblogs.com/XiaoJuRuoUP/p/18260085/P10608

相关文章

  • 重温经典:使用腾讯云轻量搭建在线红白机游戏平台
    在电子游戏的历史长河中,红白机(FC)以其独特的魅力,成为了一代又一代玩家心中的经典。那些熟悉的《超级马里奥兄弟》、《魂斗罗》等游戏声音,至今仍在我们心中回响。如今,通过腾讯云轻量应用服务器,我们能够重温这份怀旧情怀,甚至更上一层楼——搭建自己的在线红白机游戏服务器,让这份快乐......
  • 进入全球市场的游戏本地化策略
    开发商在开发游戏时已经很久没有针对单一国家了。对于目前正在开发的许多游戏来说,它们都致力于进入全球市场并吸引各种客户。然而,必须考虑一些游戏是否适合某些市场,以及某些国家是否具有足够的市场潜力。此外,在进入海外市场时,有一件事是绝对不能忽视的,那就是本地化的过程。有......
  • 用python写——猜数字小游戏2
    importrandomnum=random.randint(1,100)count=0flag=Truewhileflag:guess_num=int(input("请输入你要猜测的数字:"))count+=1ifguess_num==num:print("恭喜你,猜对了")flag=Falseelse:ifguess_n......
  • 只狼风灵月影修改器操作详解:提升游戏体验的全面教程
     《只狼:影逝二度》是一款由FromSoftware开发,动视发行的动作冒险游戏,设定在日本战国时代,玩家扮演一名忍者,面对残酷的战斗与挑战,在死亡与重生的循环中,拯救被绑架的领主,揭示背后的神秘故事。以其高强度的战斗系统、精妙的关卡设计和深刻的叙事而著称,强调精准时机的格挡与反击机制......
  • 深圳开发游戏公司哪家好?想开发一款类似宠物消消乐的休闲小游戏
    #深圳软件开发公司,哪家好?这是很多人想知道的事,别的公司我不是很了解,但深圳龙链科技是专业开发游戏的公司,下面给大家分享一款【宠物消消乐】。【宠物消消乐】是一款乐元素研发的一款三消类休闲游戏。给大家说说【宠物消消乐】升级解锁新玩法:1、主要玩法:1)玩家进入游戏需要......
  • 广告变现小游戏对接广告平台开发 源码搭建
    对接广告平台以实现小游戏广告变现,并搭建相应的源码,是一个包含多个技术环节的过程。这涉及到游戏开发、广告SDK集成、后端服务配置等多个方面。以下是一个大致的开发与搭建流程:一、游戏开发需求分析:首先明确小游戏的定位、玩法、特色以及目标用户群体,为后续的广告变现策略奠......
  • 2024年,为何游戏类外包项目增多?
      在2024年,我们在“我要外包”、“开源众包”等外包网站上查找项目时,不难发现,游戏类项目日益的额增多,相反的,前端、移动端等相应的减少,并且我们观察到游戏类外包项目呈现显著的增长趋势。这一现象背后,实际上是多种因素共同作用的结果。  首先,伴随着技术的不断进步,也为......
  • 21组Midjourney绘画关键词,专为游戏设计的奇异生物的盛宴
    21组AI绘画关键词,无一不在专为游戏设计的领域中发挥着巨大的作用。从2D游戏艺术到Xbox360图形,从科幻怪物到异世界写实,这些关键词为游戏开发者提供了丰富多彩的创意资源。通过AI绘画工具,游戏画面呈现更加逼真、独特的设计风格。在词图库中,您可以发现各种有趣刺激的关键......
  • C#贪吃蛇小游戏源码
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace贪吃蛇游戏{publicp......
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
    ​省流目录:适用于博客建站(2-4G)、个人开发/小型游戏[传奇/我的世界/饥荒](4-8G)、数据分析/大型游戏[幻兽帕鲁/雾锁王国]服务器(16-64G)1.京东云-618专属活动 官方采购季专属活动地址:京东云-618采购季服务器活动专区https://3.cn/20-J4jjX京东云又双叒降价了!活动页大改,增加两......