数论GCD——cf1055C
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论GCD——cf1055C相关的知识,希望对你有一定的参考价值。
被一道数论题卡了半天
网上的题解说只要匹配l或者r就行,想了下还真是。。
能让r1和r2对其就让他们对其,不能对其就讨论一下两种情况就可以了
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll cul(ll l1, ll r1, ll l2, ll r2, ll t) { l1 += t; r1 += t; return max(0ll, min(r1, r2) - max(l1, l2) + 1); } int main() { ll l1, r1, v1, l2, r2, v2; while(~scanf("%lld %lld %lld %lld %lld %lld", &l1, &r1, &v1, &l2, &r2, &v2)) { l1++, r1++, l2++, r2++; ll d = __gcd(v1, v2); ll l = abs(r1 - r2); ll ans = 0; ll t1 = l / d * d; ll t2 = t1 + d; ans = max(ans, cul(l1, r1, l2, r2, t1)); ans = max(ans, cul(l1, r1, l2, r2, t2)); ans = max(ans, cul(l2, r2, l1, r1, t1)); ans = max(ans, cul(l2, r2, l1, r1, t2)); cout << ans << endl; } return 0; }
以上是关于数论GCD——cf1055C的主要内容,如果未能解决你的问题,请参考以下文章