zoukankan      html  css  js  c++  java
  • Ticket Game思维题

    题目链接

    题意:

      给你一个n的序列(n=2*k),由数字和?(偶数个)组成,A和B分别操作(B先操作):把?变成一个任意的0-9的数字,如果最后前n/2和后n/2个数字之和相等,则A胜,否则B胜。

    分析:

      想一想?的作用,对于A来说就是赶快“平衡”两边,而对于B来说就是赶快让两边平衡不了。那么我们想一想B先操作会怎么办,他会把多的那边的某个?变成9(否则a会占更大优势),次时,A只能“跟风”把另一边的一个?变成9,于是一直这样下去,就还剩一边由?,此时,A和B可变的?的个数就相等了,于是每人变一个,当然,如果此时这边的和已经大了的话,那A就“凉了”,否则就计算一下能不能变成相等的,当然此时B就会判断,如果?个数*9/2就超了,那么B会很高兴的把他要变的数字都变成9,如果个数*9/2都不够,那么就B会很开心的把数字都变成0,可是如果正好是个数*9/2,那么就好了,A只需不管B怎么变就变为9-B变的数就好了,A就获胜了。

      还是比较简单的,然后我们要做的就是判断一下就好了,最后就是代码了

    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int main(){
        int n;
        scanf("%d",&n);
        int suma=0,sumb=0,ha=0,hb=0;
        char js;
        for(int i=1;i<=n/2;i++){
            scanf(" %c",&js);
            if(js=='?')
                ha++;
            else
                suma+=js-'0';
        }
        for(int i=1;i<=n/2;i++){
            scanf(" %c",&js);
            if(js=='?')
                hb++;
            else
                sumb+=js-'0';
        }
        if(ha<hb){
            swap(ha,hb);
            swap(suma,sumb);
        }
        int wh=ha-hb;
        int c=sumb-suma;
        if(c<0)
            printf("Monocarp");
        else if(wh/2*9==c)
            printf("Bicarp");
        else
            printf("Monocarp");
        return 0;
    } 
  • 相关阅读:
    XSS的原理分析与解剖
    js多少时间之前
    倒计时代码
    js data日期初始化的5种方法
    js日期格式化函数
    删除 Windows Azure 网站上的标准服务器头
    Windows Azure 社区新闻综述(#77 版)
    android 获取本机号码需要root吗?
    宣布正式发布 Biz Talk Services、Azure Active Directory 和 Traffic Manager, 同时发布 Azure Active Directory 高级版预览
    Android 下使用tcpdump网络抓包方法
  • 原文地址:https://www.cnblogs.com/wish-all-ac/p/12759962.html
Copyright © 2011-2022 走看看