A. Add Odd or Subtract Even
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
You are given two positive integers a and b.
In one move, you can change a in the following way:
Choose any positive odd integer x (x>0) and replace a with a+x;
choose any positive even integer y (y>0) and replace a with a−y.
You can perform as many such operations as you want. You can choose the same numbers x and y in different moves.
Your task is to find the minimum number of moves required to obtain b from a. It is guaranteed that you can always obtain b from a.
You have to answer t independent test cases.
Input
The first line of the input contains one integer t (1≤t≤104) — the number of test cases.
Then t test cases follow. Each test case is given as two space-separated integers a and b (1≤a,b≤109).
Output
For each test case, print the answer — the minimum number of moves required to obtain b from a if you can perform any number of moves described in the problem statement. It is guaranteed that you can always obtain b from a.
Example
inputCopy
5
2 3
10 10
2 4
7 4
9 3
outputCopy
1
0
2
2
1
Note
In the first test case, you can just add 1.
In the second test case, you don’t need to do anything.
In the third test case, you can add 1 two times.
In the fourth test case, you can subtract 4 and add 1.
In the fifth test case, you can just subtract 6.
思维题:
分类讨论一下题目,
细思一下:其实操作只有0,1,2三种情况
0:两个数字相同
1:需要加或减一个(满足题目条件的数)
2:两者奇偶性不符合题意,++或–去操作一下奇偶性就行了
这里不需要对n进行操作,最后只需要输出操作步数,判断一下两个数的关系把步数算出来就行了
题目地址:https://codeforces.com/problemset/problem/1311/A
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<map>
#include<queue>
#include<stack>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define debug(x) cerr << #x << ": " << (x) << endl
#define lowbit(i) (-i)&i
#define mem(i) memset(i,0,sizeof i)
using namespace std;
const int N = 5e5;
int n,m,t;
signed main(){
IOS
cin >> t;
while(t--){
cin >> n >> m;
int ans = 0;
if(n<m){
//&符号与1可以得出这个数字的奇偶,与1是在二进制中与最末一位进行比较
if((n&1)==(m&1)){
ans++;
}
ans++;
}else if(n>m){
if((n&1)!=(m&1)){
ans++;
}
ans++;
}
cout << ans << endl;
}
return 0;
}