专栏文章
P9213 [入门赛 #11] 移植柳树 (Hard Version) 题解
P9213题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minugc1j
- 此快照首次捕获于
- 2025/12/02 08:32 3 个月前
- 此快照最后确认于
- 2025/12/02 08:32 3 个月前
P9213 [入门赛 #11] 移植柳树 (Hard Version) 题解
分析题目
题目说有棵柳树,每两棵之间间隔米。求把每两棵之间间隔米,最少不用挪动多少棵柳树。
分析解题思路
观察题图
我们发现题目中不用动的柳树每隔米出现一个,而又等于和的最小公倍数。
关于最小公倍数,从
米一个相当于棵柳树一个,那么有几个棵柳树?
只需要用总棵树行啦!
代码实现\
CPP题目说有棵柳树,每两棵之间间隔米。求把每两棵之间间隔米,最少不用挪动多少棵柳树。
分析解题思路
观察题图
我们发现题目中不用动的柳树每隔米出现一个,而又等于和的最小公倍数。关于最小公倍数,从
C++17开始就有自带的函数:lcm(x,y)米一个相当于棵柳树一个,那么有几个棵柳树?
只需要用总棵树行啦!
代码实现\
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ull unsigned ll
#define me(a,x) memset(a,x,sizeof(a))
#define f(i,a,b,c) for(int i=a;i<=b;i+=c
#define rf(i,a,b,c) for(int i=a;i<b;i+=c)
#define F(i,a,b,c) for(int i=a;i>=b;i-=c)
#define RF(i,a,b,c) for(int i=a;i>b;i-=c)
const int maxn=1<<17;//131072,<<20 1048576,
#define vi vector<int>
#define sf scanf
#define pf printf
//上面为个人习惯,不用管
int t;
signed main(){
sf("%lld",&t);//输入组数
while(t--){//循环组数
int n,x,y;
sf("%lld%lld%lld",&n,&x,&y);//输入变量
pf("%lld\n",n/(lcm(x,y)/x)+1);//输出答案
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...