mathematics
在构建ab*ab二维向量
将原始图形放缩至长宽相等
列重合点横坐标为(0*b,1*b,2*b,...,ab)
横重合点纵坐标为(0*a,1*a,2*a,...,ba)
由于斜线正直,轴线上的点到斜线上的射影即为所求
1:(一条斜线)取列数;
2:(一条斜线)取行数空过重合点;
3:加倍并判断中心点;
void solve() {
ll a, b; cin >> a >> b;
ll ans = b + 1;//1
for (ll l = 1; l <= a; l++) {
if (l * b % a)ans++;//2
}
ans *= 2;//3
if (!(a & 1 && b & 1))ans--;
cout << ans;
}

京公网安备 11010502036488号