题解 | #墙壁划线#
墙壁划线
https://www.nowcoder.com/practice/e197f9012fe74c4a9d003094bb3a2988
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;
}
查看21道真题和解析