题目链接

题意:

  给你一个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=,sumb=,ha=,hb=;
char js;
for(int i=;i<=n/;i++){
scanf(" %c",&js);
if(js=='?')
ha++;
else
suma+=js-'';
}
for(int i=;i<=n/;i++){
scanf(" %c",&js);
if(js=='?')
hb++;
else
sumb+=js-'';
}
if(ha<hb){
swap(ha,hb);
swap(suma,sumb);
}
int wh=ha-hb;
int c=sumb-suma;
if(c<)
printf("Monocarp");
else if(wh/*==c)
printf("Bicarp");
else
printf("Monocarp");
return ;
}

最新文章

  1. 慕课网-Java入门第一季-7-5 Java 中带参无返回值方法的使用
  2. truncate和delete之间有什么区别
  3. Codeforces Beta Round #13 E. Holes 分块暴力
  4. “有箭头的视图”,即程序的Storyboard Entry Point。
  5. Maven命令行创建web项目,并部署到jobss当中(解决No plugin found for prefix &#39;jboss-as&#39; in the current project and in the plugin groups [org.apache.maven.plugins,问题)
  6. Spark集群搭建步骤
  7. C++第三天学习
  8. html学习笔记 - table表格
  9. NOPI读xls文件写到txt中(NPOI系列二)
  10. python selenium Chrome模拟手机浏览器(十七)
  11. Android.mk学习
  12. loadrunner&#160;脚本优化-参数化之Parameter&#160;List参数取值
  13. LeetCode题解之Lemonade Change
  14. Linux电源管理(7)_Wakeup events framework【转】
  15. [原]关于在Python和C#之间消息传递的问题
  16. sql2008r2安装失败的解决办法
  17. SecureCRT使用本地公钥 SSH 免密码登录Linux
  18. ovs flow 原理及实验
  19. 集合框架_DAY15
  20. L3-004 肿瘤诊断 dfs bfs

热门文章

  1. 小波学ItDay01--开始学习Servlet
  2. python IDE pycharm的安装与使用
  3. Vue3 新特性
  4. 手写网页扫雷之css部分
  5. (四)MySQL条件查询(通配符、模糊查询)、排序查询、分组查询(单行、分组函数)
  6. Arduino_DH11+0.96OLED_u8glib库 温湿度显示
  7. Spring Cloud 系列之 Dubbo RPC 通信
  8. 键盘侠Linux教程(四)| 常用命令
  9. 吃货联盟订餐系统 源代码 Java初级小项目
  10. PHPWord中文乱码、单元格合并、动态表格模板解决方案合集