【10.24 牛客普及(四)】 卡片 題解
【10.24 牛客普及(四)】 卡片 題解
題目
A
l
i
c
e
Alice
Alice和
B
o
b
Bob
Bob各帶來一個正多邊形卡片。
A
l
i
c
e
Alice
Alice的卡片是邊長為
A
A
A的正
M
M
M邊形,
B
o
b
Bob
Bob的卡片是邊長為
B
B
B的正
N
N
N邊形。
A
l
i
c
e
Alice
Alice和
B
o
b
Bob
Bob將兩張卡片擺放在一起,其中兩張卡片並不重疊,並且有至少一個公共頂點和一條公共邊。
A
l
i
c
e
Alice
Alice喜歡旋轉,因此她沿
B
o
b
Bob
Bob的卡片順時針旋轉自己的多邊形。
旋轉的中心點是多邊形公共邊上一點,且旋轉過程中兩張卡片不重疊。
A
l
i
c
e
Alice
Alice想知道,在旋轉多少次過後,
A
l
i
c
e
Alice
Alice的正多邊形會回到原位置。
輸入
一行,四個整數 A A A, M M M, B B B, N N N,含義如題目描述所述。
輸出
一行,一個數 A n s Ans Ans,表示 A l i c e Alice Alice旋轉的次數。
樣例
input 1
2 4 3 4
output 1
8
explain
前兩次操作如下:
input 2
3 4 4 4
output 2
24
input 3
2020 1024 2021 1025
output 3
828200
資料範圍
對於10%的資料,
M
M
M=
N
N
N=4,且
A
A
A≤
B
B
B≤10;
對於另外30%的資料,
M
M
M≤1000,
N
N
N≤1000,且
A
A
A≤
B
B
B≤1000;
對於另外30%的資料,
B
B
B是
A
A
A的倍數;
對於100%的資料,1≤
A
A
A≤B≤106,3≤
M
M
M≤106,3≤
N
N
N≤106。
解題思路
先求出使
A
A
A卡片和
B
B
B卡片能有一個頂點重合一回
要走多少條邊
操作多少次
然後求要走的邊數和
B
B
B卡片的邊數的最小公倍數
最小公倍數除以要走的邊數
得出一共要走多少回
與運算元相乘
即為結果
程式碼
#include<iostream>
#include<cstdio>
using namespace std;
long long a,n,b,m,cz,bs=1,x,y;
long long gcd(long long x,long long y)
{
if (x%y==0)
return y;
else return gcd(y,x%y);
}
long long lcm(long long a,long long b)
{
return a*b/gcd(a,b);
}
int main()
{
scanf("%lld%lld%lld%lld",&a,&n,&b,&m);
x=b;
y=x%a;
if (y)
cz=x/a+1;
else cz=x/a; //第一條邊預處理
while (y) //還未有頂點重合
{
bs++; //要走的邊數
x=b-a+y; //上一次多走的,這次不用走
y=x%a;
if (y)
cz+=x/a+2;
else cz+=x/a+1; //轉角還要多+1
}
m=lcm(bs,m); //求要走多少會
printf("%lld",cz*(m/bs));
return 0;
}
相關文章
- 【10.22 牛客普及(三)】 牛半仙的妹子gcd 題解GC
- 重新振作第四天----NBUACMer-Beginnerround10.24題解ACM
- 牛客多校H題題解
- 牛客小白月賽105 題解
- 牛客周賽 Round 66 題解
- 牛客2020跨年場 部分題解
- 2020牛客NOIP賽前訓練營-普及組第一場牛牛的跳跳棋題解
- 牛客周賽 Round 70 A~G 題解
- 牛客周賽 Round 62 全部題解
- 牛客錯題集
- 牛客小白月賽88-DE題解
- 牛客 215E 黃魔法師 題解
- 牛客題霸 [括號序列] C++題解/答案C++
- 2024牛客多校第四場
- 牛客周賽Round 67 個人題解(A~F)
- 夜深人靜寫題解--牛客第六場
- 牛客小白月賽27部分題解
- 牛客錯題集(Java)Java
- 牛客題霸 [最長公共子串]C++題解/答案C++
- 牛客網Java評估題Java
- 錯題集1-牛客
- 牛客題霸--求路徑
- 牛客巔峰賽S2第6場題解
- 牛客SQL練習第21題SQL
- 牛客網--華為機試題
- 牛客
- P2192 HXY玩卡片 題解
- 2024牛客暑期多校訓練營2 解題報告
- 牛客網刷題(純java題型 31~60題)Java
- 牛客網刷題(純java題型 1~30題)Java
- 牛客網刷題(純java題型 91~120題)Java
- 牛客網刷題(純java題型 241~270題)Java
- 牛客網刷題(純java題型 421~450題)Java
- 10.24
- 牛客網SQL刷題31-40SQL
- 牛客網SQL刷題41-50SQL
- 牛客網字串排序程式設計題字串排序程式設計
- 2024牛客暑期多校訓練營10 - L. Tada! - 題解