社区讨论

爆long long

P12226「WyOJ Round 1」启 · 破茧初阳参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhju4pwf
此快照首次捕获于
2025/11/04 08:32
4 个月前
此快照最后确认于
2025/11/04 08:32
4 个月前
查看原帖
这样写的记得用__int128判一下lcm大小,不然爆long long就喜提40分或70分了
CPP
signed main()
{
	cin.tie(0)->sync_with_stdio(0);
	cin>>t;
	while(t--)
	{
		cin>>n>>a>>b>>c;
		int ans=n/c;
		if(a%b==0||a%c==0)
		{
			cout<<ans<<'\n';
			continue;
		}
		int xd=lcm(a,b),cd=lcm(a,c),qwq=gcd(xd,cd);
		ans+=n/a-n/xd-n/cd;
		if((__int128)xd*cd/qwq>(__int128)n)
		{
			cout<<ans<<'\n';
			continue;
		}
		ans+=n/(xd/qwq*cd);
		cout<<ans<<'\n';
	}
}

回复

0 条回复,欢迎继续交流。

正在加载回复...