29. 坏巧克力

2024-03-16 12:30
文章标签 29 巧克力

本文主要是介绍29. 坏巧克力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

description

两个玩家轮流掰一块​mxn格的巧克力,其中一块1x1​的小块是坏的。每次掰只能顺着方格的边界,沿直线一掰到底。每掰一次,掰的人x把两块中不含坏巧克力的那块吃掉,谁碰到最后那块坏巧克力就算输了。在这个游戏中,先走好还是后走好。

输入描述

输入第一行包含一个整数T [1,100 000]​,表示数据组数。

接下来​T行,每行包括​4个整数m,n,x,y(1<=m,n<=10 000 1<=x<=m 1<=y<=n)​,表示整块巧克力有m​行​n列构成,其中坏的那一块在​x行y​列。

输出描述

对于每组用例,在一行内输出AliceBob,分别表示先走好还是后走好。

测试输入关于“测试输入”的帮助期待的输出关于“期待的输出”的帮助时间限制关于“时间限制”的帮助内存限制关于“内存限制”的帮助额外进程关于“{$a} 个额外进程”的帮助
测试用例 1以文本方式显示
  1. 2↵
  2. 1 1 1 1↵
  3. 1 2 1 1↵
以文本方式显示
  1. Bob↵
  2. Alice↵
1秒64M0

code

  1. 具体原理和算法来自于《算法设计与分析基础》一书

在这里插入图片描述
在这里插入图片描述

  1. 然后这个题转化以后 是把 m-x,n-y,x-1,y-1,分别转换成二进制相加,忽略进位,只要某一位出现1,那么返回alice
  2. 代码:
#include <iostream>using namespace std;int main()
{// freopen("file.txt", "r", stdin);int t;  // t组数据cin >> t;int m, n, x, y;int flag = 1;  //第2个while正常退出的标志while(t--) {cin >> m >> n >> x >> y;m -= x;n -= y;x--;y--;flag = 1;while(m || n || x || y) {  //只有全为0了才退出if((m % 2 + n % 2 + x % 2 + y % 2) % 2) {cout << "Alice" << endl;flag = 0;break;}m /= 2;n /= 2;x /= 2;y /= 2;}if(flag)cout << "Bob" << endl;}return 0;
}

贴一个另一个博主的解法,直接相乘https://blog.csdn.net/CN_BIT/article/details/104651239

# include<stdio.h>
#include<stdlib.h>int main(){int num;int i;int u;freopen("file.txt","r",stdin);scanf("%d",&num);int m[num],n[num],x[num],y[num],r[num],a,b,c,d;for(i=0;i<num;i++){scanf("%d %d %d %d",&m[i],&n[i],&x[i],&y[i]);}for(i=0;i<num;i++){a = m[i]-x[i];b=n[i]-y[i];c = x[i]-1;d=y[i]-1;r[i]=a^b^c^d;}for(u=0;u<num;u++){if(r[u])printf("Alice\n");elseprintf("Bob\n");}
}

这篇关于29. 坏巧克力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815497

相关文章

基于Python的机器学习系列(29):前馈神经网络

在本篇文章中,我们将学习如何使用PyTorch构建和训练一个前馈神经网络。我们将以线性回归为例,逐步了解PyTorch的各个组件及其在神经网络中的应用。这些步骤包括: 指定输入和目标:我们将定义输入特征和目标变量。数据集和数据加载器:使用PyTorch的数据集和数据加载器来管理和加载数据。nn.Linear(全连接层):创建前馈神经网络中的线性层。定义损失函数:选择合适的损失函数

『功能项目』Unity本地数据库读取进入游戏【29】

本章项目成果展示 打开上一篇28Unity连接读取本地数据库的项目, 本章要做的事情是通过读取本地数据库登录进入游戏场景 首先创建一个脚本文件夹: 新建脚本:MySqlAccess.cs 编写脚本:MySqlAccess.cs using UnityEngine;using MySql.Data.MySqlClient;public class MySq

leetcode解题思路分析(五)29-36题

两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 本题思路倒是不难,既然不能用乘除法和mod,那使用减法是理所当然的,唯一需要考虑的是边界溢出情况 class Solution {public:int divide(int dividend, in

9/29学习总结

周六上午开了总结会,感觉到自己太颓废了相较于别人的努力发现自己和每个人的差距都实在是太大,总结的时候说不出几句,而听到他人的总结时有多多少少能在自己身上找到这些点这点说明反思的还不够并不能抓住问题的要点。近期自己的学习只是看那些基础的题目一点新的知识都没有整天就感觉自己空空的没有东西可以总结,这也反映出看题目也没有看得很深没有将其中的思想给提取出来。对于那些和其他知识点结和的题目我也是跳过而这我想

【智能制造-29】软限位和硬限位

什么是软硬件限位? 在很多运动控制领域都可能会用到软硬限位,比如: 一、工业机器人 软限位应用 工业机器人在进行复杂的动作编程时,通常会设置软限位来确保机器人的运动在安全范围内。通过软件算法对机器人各个关节的运动角度、位置和速度进行限制。例如,当机器人的手臂接近工作空间的边缘或者可能与其他设备发生碰撞的位置时,软限位可以使机器人自动减速或停止运动。 软限位的设置可以根据不同的任务需求进行灵活调

29个阿里架构师必会的核心实战知识点整理清单

29个阿里架构师必会的核心实战知识点整理清单 Java高级架构n 2019-06-24 09:00:00 由于每篇的细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有各种细化讲解内容! JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没

org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column

@SuppressWarnings("unchecked")   public List<Strudent> getStudent(int count) {       String hql = "select top "+count+" from Student";       return (List<Student>)getHibernateTemplate().fin

c++习题29-大整数的因子

目录 一,题目 二,思路 三,代码 一,题目 描述 已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。 输入描述 一个非负整数c,c的位数≤30。 输出描述 若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。 用例输入 1  30 用例输出 1

认知杂谈29

今天分享 有人说的一段争议性的话 I I 《人生道理得自悟》 嘿,朋友们!咱今天敞开了好好唠唠。可能有的人会觉得我说的这些话呀,那可真是老得不能再老了,一点新鲜劲儿都没有,根本就听不进去。就好像耳朵里塞了两大团棉花似的,那是一点都进不到心里去啊。但咱可得好好琢磨琢磨,真正的道理就明晃晃地摆在那儿呢,得靠你自己去慢慢想明白。懂的人呢,一下子就能明白这里头的意思;不懂的人呢,那就得自己去撞撞南墙

【JPCS独立出版】第四届电气工程与计算机技术国际学术会议(ICEECT 2024,9月27-29)

第四届电气工程与计算机技术国际学术会议(ICEECT2024)将于9月27日-29日在哈尔滨举办。 会议主要围绕"电路与系统"、“电气工程材料”、“计算机视觉”、“计算机技术”等专业研究领域展开讨论。旨在为气工程、计算机技术等领域的专家学者及企业发展人提供一个分享研究成果、讨论存在的问题与挑战、探索前沿科技的国际性合作交流平台。大会诚邀国内外高校、科研机构专家、学者,企业界人士及其他相关人员