题意

对于\(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. linux nfs共享存储服务

    目录 一.nfs服务 二.nfs优点 三.配置文件 四.共享文件配置过程 五.实验 1.创建共享文件(两台终端共享) 一.nfs服务 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件 ...

  2. 小程序打印饼图报错VM6541:1 thirdScriptError Converting circular structure to JSON;

    今日使用小程序开发饼图页面,由于一个页面需要打印多个饼图,所以需要将echarts对象进行缓存,于是出现了如下js报错问题 一. 错误代码 VM6541:1 thirdScriptError Conv ...

  3. docker 下MySQL主从读写分离配置

    主从同步机制: 同步基于耳机子机制,主服务器使用二进制来记录数据库的变动状况,从服务器通过读取和执行日志文件来保存主服务的数据一致 首先要保障主从的版本一致或相近 1 登陆docker,拉取镜像 do ...

  4. Python异步编程之web框架 异步vs同步 文件IO任务压测对比

    测试基本信息 主题:比较异步框架和同步框架在文件IO操作的性能差异 python版本:python 3.8 压测工具:locust web框架:同步:flask 异步:aiohttp.starlett ...

  5. 统信UOS系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12.8

    前言   上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到自己编译的Qt,所以本篇如何在统信UOS系统上编译Qt5.12.8源码.   统信UOS系统版本   系统版本:   Qt源码下载   ...

  6. 20个Golang片段让我不再健忘

    前言 本文使用代码片段的形式来解释在 go 语言开发中经常遇到的小功能点,由于本人主要使用 java 开发,因此会与其作比较,希望对大家有所帮助. 1. hello world 新手村的第一课,毋庸置 ...

  7. CANoe工具的安装

    CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment,用于分析和模拟CAN(Controller Area Network)和LIN ...

  8. 基于php的外卖订餐网站(php+mysql)

    介绍 一个基于php的外卖订餐网站,包括前端和后台. 效果演示 http://101.43.124.118:8001/admin 源码地址 https://github.com/geeeeeeeek/ ...

  9. MySQL中都有哪些锁?

    MySQL中都有哪些锁 为什么需要锁 在计算机系统中,锁(Lock)是一种同步机制,用于控制对共享资源的访问.它确保在任何给定时间内只有一个线程能够访问受保护的共享资源,从而避免了由并发访问导致的数据 ...

  10. 前端树形结构图treeShapeStruct,可拖拽移动,点击展开收缩,无限添加子集

    快速实现树形结构图,可拖拽移动,点击展开收缩,无限添加子集; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12650 效果图如 ...