题目链接:
题目大意:
给定两个偶数,求出满足n%x=y%n的n
思路:
x>y时 n=x+y即可
x<=y时 n一定满足 x<=n<=y
证明:
如果n
如果n>y n%x
x 不满足
对于区间【x,y】如何确定n的值
参考大佬的思路,一个形象化的解释

如图你处在原点,每次可移动x长度,然后可以到达p=y-y%x.因为x,y都是偶数,ymodx也是偶数。p可以两次移动(ymodx)/2距离到达y
n=y-(ymodx)/2,即为所求答案
n%x=(ymodx)/2
y%n=(ymodx)/2
代码:
- #include
- using namespace std;
- typedef long long ll;
- typedef pair<int,int> PII;
- void solve()
- {
- int x,y,n;
- cin>>x>>y;
- if(x>y) cout<
'\n'; - else cout<
2<<'\n'; - }
- int main()
- {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- int t;
- cin>>t;
- while(t--) solve();
- }