[Daimayuan] 最喜欢数学了(高数除外)(C++,逻辑推理)

news/2023/11/28 8:12:14

小明的数学很好,所以他认为世界上所有的数学问题都很简单。

但是有一天,他遇到了一个他无法解决的数学问题,所以他请求你帮助他。

小明会给你两个数字 a a a b b b ,然后你应该选择一个正奇数 x x x 和一个正偶数 y y y ,你可以让 a a a 加上 x x x 或让 a a a 减去 y y y,在一次运算中。你应该在最少的操作中把 a a a 变成 b b b。请注意,在同一次运算中,你不允许改变 x x x y y y 的值。

输入格式

在第一行,有一个整数 T T T

接下来 T T T 行每行 2 2 2个整数 a a a b b b。表示由小明给出的数字。

输出格式

一个数,表示将 a a a 变为 b b b 所需的最小操作数。

样例输入

1
10 7

样例输出

2

数据规模

所有数据保证 1 ≤ T ≤ 1 0 5 1≤T≤10^5 1T105, 1 ≤ a , b ≤ 1 0 6 1≤a,b≤10^6 1a,b106

解题思路

这是一道逻辑推理题目,考虑到每一种情况,然后打表就行了。

代码实现如下:

1)如果 a , b a,b a,b相等,那么输出 0 0 0

证明过程:无。

2)如果 b − a b-a ba为正奇数,那么输出 1 1 1

证明过程:直接加上 x x x即可。

3)如果 b − a b-a ba为负奇数,那么输出 2 2 2

证明过程:因为 x , y x,y x,y可以任意选择,所以减去一次 y y y,加上一次 x x x即可。

4)如果 b − a b-a ba为正偶数,那么输出 2 2 2 3 3 3

证明过程:如果 ( b − a ) / 2 (b-a)/2 (ba)/2为奇数,那么我们可以通过加两次 x x x解决( x = ( b − a ) / 2 x=(b-a)/2 x=(ba)/2);

如果 ( b − a ) / 2 (b-a)/2 (ba)/2为偶数,那么我们可以通过加两次 x x x然后减去一次 y y y解决( x = ( ( b − a ) + y ) / 2 x=((b-a)+y)/2 x=((ba)+y)/2)。

5)如果 b − a b-a ba为负偶数,那么输出 1 1 1

证明过程:直接减去 y y y即可。

AC代码如下:

#include <iostream>
#include <cmath>
using namespace std;int main() {int t, a, b;cin >> t;while (t--) {cin >> a >> b;if (a == b) {//相等cout << 0 << endl;}else if (b - a > 0 && (b - a) % 2) {//正奇数cout << 1 << endl;}else if (b - a < 0 && (b - a) % 2) {//负奇数cout << 2 << endl;}else if (b - a > 0 && (b - a) % 2 == 0) {//正偶数if ((b - a) / 2 % 2) {//为奇数cout << 2 << endl;}else {//为偶数cout << 3 << endl;}}else {//负偶数cout << 1 << endl;}}return 0;
}

http://www.ppmy.cn/news/95696.html

相关文章

在AgilePLM项目中使用积木报表

前言 目前市面上有很多比较好的报表工具&#xff0c;但很多收费都比较昂贵&#xff0c;这次找到一个开源免费的报表工具。推荐企业内部开发使用 积木报表虽然没有FineReport那么功能强大&#xff0c;但是目前测试下来也可以满足大部分报表功能。也是能缩短开发周期降低开发成…

算法基础学习笔记——⑨C++STL使用技巧

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨CSTL简介 ✨CSTL使用技巧 前言&#xff1a;算法学习笔记记录日常分享&#xff0c;需要的看哈O(∩_∩)O&#xff0c;感谢大家的支持&#xff01; ✨CSTL简介 vector变长数组&#xff0c;倍增的思想//系统为…

JavaEE HTTP应用层协议

HTTP应用层协议 文章目录 JavaEE & HTTP应用层协议1. HTTP的报文协议格式1.1 fiddler介绍1.2 HTTP请求1.3 HTTP响应 2. HTTP请求与响应2.1 首行2.1.1 http方法2.1.2 URL2.1.3 版本号 2.2 header与空行2.2.1 Host2.2.2 Content-Type 与 Content-Length2.2.3 User-Agent&…

我的创作纪念日(五年之约)

时光荏苒&#xff0c;五年光阴如白驹过隙般匆匆而去&#xff0c;记得第一次接触CSDN还是在大学&#xff0c;转眼间我还在大学。 机缘 CSDN给我最大的帮助便是让我便捷的学习IT领域的相关知识。 实战项目中的经验分享日常学习过程中的记录通过文章进行技术交流… 收获 提示&…

C++异步调用方法

C之future和promise future和promise的作用是在不同线程之间传递数据。使用指针也可以完成数据的传递&#xff0c;但是指针非常危险&#xff0c;因为互斥量不能阻止指针的访问&#xff1b;而且指针的方式传递的数据是固定的&#xff0c;如果更改数据类型&#xff0c;那么还需要…

【新星计划·2023】网工知识——OSPF讲解

OSPF ( Open Shortest Path First开放式最短路径优先)是一种动态路由协议&#xff0c;属于内部网关协议( Interior Gateway Protocol&#xff0c;简称IGP )&#xff0c;是基于链路状态算法的路由协议。 一、OSPF是什么&#xff1f; OSPF意思是指一个内部网关协议(Interior Ga…

win10微软Edge浏览器通过WeTab新标签页免费无限制使用ChatGPT的方法,操作简单,使用方便

目录 一、使用效果 二、注册使用教程 1.打开Edge浏览器扩展 2.选择Edge浏览器外接程序 3.搜索WeTab 4.进入管理扩展 5.启用扩展 ​编辑 6.进入WeTab新标签页 7.打开Chat AI 8.注册 9.使用 ChatGPT是OpenAI推出的人工智能语言模型&#xff0c;能够通过理解和学习人类…

对KMP算法的一点碎碎念——上篇

对KMP算法的一点碎碎念——上篇 文章目录 对KMP算法的一点碎碎念——上篇1. KMP 算法 Next数组 求解问题1.1 前置知识-最长公共前后缀LCP1.1.1 前缀与后缀1.1.2 最长公共前后缀LCP 1.2 手算法求解 Next数组值(3种常见情况)1.2.1 情况1: next数组 正常存放匹配字符的长度情况1的…

DBeaver安装与使用教程

—仅供学习 侵权请联系删除– 一、DBeaver介绍 DBeaver是免费和开源&#xff08;GPL&#xff09;为开发人员和数据库管理员通用数据库工具。 1.它支持任何具有一个JDBC驱动程序数据库&#xff0c;也可以处理任何的外部数据源。 DBeaver 通过 JDBC 连接到数据库&#xff0c;可以…

【7 Vue3 – Composition API】

1 认识Composition API Options API的弊端 setup函数 2 setup函数的参数 3 setup简单使用 1 注意不再有响应式数据 要做到响应式数据需要在数据定义时使用ref包装数据,并且在使用时,使用value解包 2 注意template要使用的数据或者函数,必须要return 返回才能被使用 <templa…

从0到10万:如何迅速提升公众号粉丝数

对于许多公众号运营者来说&#xff0c;关注数增长的速度缓慢是一个常见的问题。以下是一些提升公众号关注数并从0到10万的经验分享。 1. 构建一个优质内容库&#xff1a;吸引用户的关注向上的主要途径是提供有价值的内容。一个内容库可以帮助运营者快速扩大影响力。 2. 宣传和…

考虑多能负荷不确定性的区域综合能源系统鲁棒规划(MatlabPython代码)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

深入浅出Docker:Java开发者的快速上手指南

前言1. Docker是什么&#xff1f;2. 安装Docker3. 使用Docker容器运行Java应用4. 使用Docker部署Java Web应用5. 总结 前言 在今天的软件开发环境中&#xff0c;Docker已经成为了一种常见的开发和部署工具。无论你是前端开发者、后端开发者&#xff0c;还是DevOps工程师&#…

ubuntu下编译esp32 micropython固件编译(可自行增加模块)

目录 0. 前言1. 安装ESP-IDF2. 初始化Micropython仓库3. 选择ESP-IDF相应版本情况&#xff11;情况2 4. 开始编译5.烧录固件 0. 前言 为ESP32编译Micropython固件 操作系统&#xff1a;ubuntu22.04 1. 安装ESP-IDF 本节需要ESP-IDF环境&#xff0c;安装开发环境是必要的。 …

FPGA之手把手教你做多路信号发生器(STM32与FPGA数据互传控制波形生成)

文章目录 博主的念叨一、任务介绍1、本文目标2、设计思路3、设计注意事项 二、设计代码1.顶层文件代码2.波形生成模块3.ROM例化4.PLL例化5.引脚分配 总结 博主的念叨 博主建了一个技术资源分享的群&#xff0c;开源免费&#xff0c;欢迎进来唠嗑280730348 最近趁热打铁做了一…

介绍ClickHouse重要特性——系统表

ClickHouse是开源的、用于处理大规模数据、列数据库系统&#xff0c;以高性能、可伸缩和灵活性著称。其中一个重要特性是其系统表&#xff0c;这些表中包含数据库结构、配置信息和使用的元数据。本文深入## 介绍系统表并讨论其重要性和用法。 系统表是啥 系统表是存在ClickHou…

2022年12月STEMAC++中级组编程题

第一题: 编程实现:求位数 题目描述: 给定一个正整数N(1<N<10^8),输出N为几位数。 输入描述 输入一个正整数N(1<N<10^8) 输出描述 输出一个整数,表示N为几位数。 解析:这题可以直接通过循环除法求商得出有几位数。 #include<iostream> using names…

华为OD机试之租车骑绿岛(Java源码)

租车骑绿岛 题目描述 部门组织绿岛骑行团建活动。租用公共双人自行车&#xff0c;每辆自行车最多坐两人&#xff0c;最大载重M。 给出部门每个人的体重&#xff0c;请问最多需要租用多少双人自行车。 输入描述 第一行两个数字m、n&#xff0c;分别代表自行车限重&#xff0c;部…

【rust】| 06——语言特性 | 所有权

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础 | 变量(不可变?)和常量 【rust】| 03——语法基础 | 数据类型 【rust】| 04——语法基础 | 函数 【rust】| 05——语法基础 | 流程控制 【rust】| 06——语言特…

规则网络构建

规则网络构建 文章目录 规则网络构建[toc]1 规则网络定义2 规则网络的构建3 代码实现 1 规则网络定义 常见规则网络包包括全局耦合网络、最近邻耦合网络和星型耦合网络&#xff0c;三种规则网络定义如下&#xff1a; (1)全局耦合网络&#xff1a;任意两个节点均存在连边的网络…
最新文章