牛客小白月赛3-C.博弈

题目描述:XHRlyb在和Cwbc玩游戏。 在一个多重集合中有在[l,r]中的全部整数各一个,即l,l+1,l+2,......,r。 每次XHRlyb和Cwbc可以选择一个大于0的数字p,把p从多重集合中删去,然后向集合中加入k个 ,最后不能操作的人算输。   如果博弈双方都是绝顶聪明的,并且XHRlyb先手,请你来帮XHRlyb预测这一局游戏谁会获胜。    如果博弈双方谁也无法取胜,那么判定为平局。  聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

输入描述: 输入数据有多行,每行有三个正整数,l,r,k。
输出描述:输出数据应有多行,如果这一局XHRlyb获胜,那么请输出XHRlyb;如果Cwbc获胜,请输出Cwbc;如果两人平局,请输出Draw。

这里比较坑,容易理解错,中括号是取整的意思;我被这里阴了,改了一个晚上都改不对;
出题人写的题解:
数据组数较多,我们优先考虑预处理数组,然后直接回答询问。
考虑贪心。
当 k = 1 时,游戏会一直继续下去,谁也无法取胜,故平局。 对 2 ≤ k 的每一个 k,枚举每一个数字,考虑它需要做几次操作,才能将这个数字变成全部为零的 数字。
可以看出,最后的答案只与总操作数的奇偶性有关,而数字的总操作数是一定的,故这是一个假的
博弈论。
对操作数求一个前缀和,判断其奇偶性,即可。
这样,我们就可以通过这道题目。

#include<bits/stdc++.h>
using namespace std;
long long pk[105][100005];
void solve()//预处理,求出对于每个k值,每个p需要的操作数
{
    long long k,p,s,num;
    for(k=2;k<=100;k++)
    {
        for(p=1;p<=100000;p++)
        {
            s=p;
            while(s)
            {
                s/=k;
                pk[k][p]=pk[k][p]*k+1;

            }
        }
    }
}
int main()
{
    long long l,r,k,i,j;
    solve();
    while(~scanf("%lld%lld%lld",&l,&r,&k))
    {
        long long ans=0;
        if(k==1)
        {
            printf("Draw\n");
        }
        else
        {
            for(i=l;i<=r;i++)
            {
                ans=ans+pk[k][i];
            }
            if(ans%2==1)
                printf("XHRlyb\n");
            else
                printf("Cwbc\n");
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka是一个高性能的分布式消息队列系统,可以实现高吞吐量、低延迟的消息传递。它支持点对点和发布-订阅两种消息传递模式。在仿牛客项目中使用Kafka可以实现消息的异步处理和分布式架构。 使用Kafka的第一步是创建一个主题(topic),主题既是消息的类别,也是消息在Kafka中的存储位置。可以使用命令行工具kafka-topics.bat来创建主题。例如,可以使用以下命令来创建一个名为test的主题: bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test 上述命令中,--bootstrap-server参数指定了Kafka服务器的地址和端口,--replication-factor参数指定了主题的副本数,--partitions参数指定了主题的分区数。创建主题后,可以向主题中发送消息,并由消费者进行消费。 要列出已经存在的主题,可以使用以下命令: kafka-topics.bat --list --bootstrap-server localhost:9092 需要注意的是,以上命令中的localhost:9092是Kafka服务器的地址和端口,根据实际情况进行修改。 总结起来,在仿牛客项目中使用Kafka,首先需要创建一个主题,然后可以使用相关命令行工具进行消息的发送和消费。这样可以实现消息的异步处理和分布式架构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [仿牛客论坛项目学习记录——5 Kafka 构建TB级异步消息系统](https://blog.csdn.net/dadayangpei/article/details/127173098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值