题意

对于\(t(1\leq t\leq 100)\)个测试点,给两个数\(a\)和\(b\),作如下操作:

第一次挑一个数使其加\(1\),第二次挑一个数使其加\(2\),以此类推,最后两个数相等,问最小操作数。

分析

题目所述意思即为挑选最小的\(n\),满足以下等式\((\pm\)表示可取正号可取负号\()\)

\[\pm1\pm2\pm3\pm\cdots\pm n= \left|a-b\right|\tag{1}
\]

我们令\(\left|a-b\right|\)为\(x\),我们先找到最小的\(k\)满足\(\frac{k*(k+1)}{2}\geq x\),即\((1)\)式中全为加号\((\)如果全为加号都不满足,其中一些变为减号肯定更不满足\()\)。我们有一个以下式子

\[1+2+\cdots+k=x+y\tag{2}
\]

其中\(y\)为超过的部分。

\(1.\)如果\(y\)是偶数,我们已知\(y<k\),否则不满足上述\(k\)最小。那么我们将\(\frac{y}{2}\)的符号变为负号即可满足\((1)\)式,那么答案就是\(k\)。

\(2.\)如果\(y\)是奇数,那么该式子将一些正号变为负号也肯定不满足(改变后式子的值变化为偶数),我们往\((2)\)式左右都加上\(k+1\)。

  • 如果\(k+1\)是偶数,那么\(y+k+1\)仍然为奇数,同上,仍不满足,我们需两边再加上\(k+2\),\(y+2*k+1\)为偶数,我们将\(\frac{y+1}{2}\)和\(k\)的符号变为负号即可满足\((1)\)式,\((y+1=2*k\)显然不满足条件\()\),那么答案就是\(k+2\)。
  • 如果\(k+1\)是奇数,那么\(y+k+1\)为偶数,我们将\(\frac{y+k+1}{2}(\frac{y+k+1}{2}<k+1)\)的符号变为负号即可满足\((1)\)式,那么答案就是\(k+1\)
#pragma GCC optimize(3, "Ofast", "inline")

#include <bits/stdc++.h>

#define start ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
#define LL long long
#define pii pair<int,int>
#define int ll
#define ls st<<1
#define rs st<<1|1
using namespace std;
const int maxn = (ll) 1e5 + 5;
const int mod = (ll) 1e9 + 7;
const int inf = 0x3f3f3f3f3f3f3f3f;
int sum[maxn]; signed main() {
start;
for (int i = 1; i < maxn; ++i)
sum[i] = sum[i - 1] + i;
int T;
cin >> T;
while (T--) {
int a, b;
cin >> a >> b;
if (a > b)
swap(a, b);
int x = b - a;
int ans = lower_bound(sum, sum + maxn, x) - sum;
if ((sum[ans] - x) & 1) {
if (ans & 1)
cout << ans + 2 << '\n';
else
cout << ans + 1 << '\n';
} else
cout << ans << '\n';
}
return 0;
}

我现在连\(Div2\)的\(B\)都能卡一小时吗,我是真的菜

CodeForces-1278B-A-and-B的更多相关文章

  1. codeforces B. A and B 找规律

    Educational Codeforces Round 78 (Rated for Div. 2) 1278B - 6 B. A and B  time limit per test 1 secon ...

  2. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  3. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  4. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  5. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  6. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  7. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  8. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

  9. CodeForces - 696B Puzzles

    http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...

  10. CodeForces - 148D Bag of mice

    http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...

随机推荐

  1. From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

    From Java To Kotlin, 空安全.扩展.函数.Lambda 概述(Summarize) • Kotlin 是什么? • 可以做什么? • Android 官方开发语言从Java变为Ko ...

  2. 一文读懂面试官都在问的Log4J2漏洞

    CVE-2021-44228 漏洞简介 Apache Log4j2是一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录. 2021年11 ...

  3. Java动态数组及数组排序的三种常用方法

    一.动态数组 1.数组的定义: ​ 用于存储相同数据类型的一组连续的存储空间 2.数组的特点: ​ 数组的长度一旦定义,则不可改变 ​ 访问数组的元素需要通过下标(索引)访问,下标从0开始 ​ 数组是 ...

  4. K8S | 核心原理分析

    目录 一.背景 二.持续集成 三.K8S架构 1.核心组件 2.分层结构 3.核心能力 3.1 发现与负载 3.2 调度 3.3 自动伸缩 四.应用案例 1.服务部署 2.交互流程 五.参考源码 整体 ...

  5. vue2中v-if 或者 v-show 使用数组中的值判断不生效

    知识点来源:博客园==> 外号蓝大胖// 对象this.$set(obj, key, value)/vue.set(obj, key, value)// 数组this.$set(arr, ind ...

  6. Pytorch-PyG图神经网络依赖环境安装(Anaconda)

    1.默认用户在Anaconda的虚拟环境中已安装Pytorch 2.打开anaconda prompt命令窗, activate "你的虚拟环境名称" 3.在激活后的虚拟环境下输入 ...

  7. substrate 编译出错unresolved import `sp_runtime::testing` failed to resolve: could not find `GenesisConfig` in `system`

    error[E0432]: unresolved import `sp_runtime::testing` --> /Users/suyinrong/bitcoin-proj/substrate ...

  8. C++面试八股文:什么是智能指针?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第19面: 面试官:什么是智能指针? 二师兄:智能指针是C++11引入的类模板,用于管理资源,行为类似于指针,但不需要手动申请.释放资源,所以称为智能 ...

  9. GPT生成式预训练Transformer架构应用实战

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...

  10. java.lang.Error: Unresolved compilation problems

    一般有两种常见的情况: 1.当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时,这个 jar 内所有的 java package 中的类必须来自这个 jar 包 ...