首页 > 其他分享 >P6786 「SWTR-6」GCDs & LCMs

P6786 「SWTR-6」GCDs & LCMs

时间:2024-12-14 18:20:25浏览次数:3  
标签:maxx GCDs fre ll SWTR num P6786 se gcd

有意思的推式子题

一开始看到这个式子是不知所措的,推理出来的结论倒是挺有意思的,还是第一次遇到这样推理的。

一开始是打算直接枚举的,时间复杂度太高了,这个式子有什么意义呢?
x+y+gcd(x,y) = lcm(x,y)

x 等于 y时,显然不成立
当y>x时,这时候就需要猜了。x+y+gcd(x,y)一定小于3y ,而lcm又是y的整数倍,x不等于y
可以发现,x+y+gcd一定等于2
y的时候才成立。

可以推出,y 等于 3*x/2 ;

这个题就很轻易就能解出来了,一个数字对应一块答案

#include<Reisentyan>

ll num[300200];
map<ll, ll>se;
map<ll, ll >ma;//最小值是i时,其答案是

int main()
{
	ll n = q_;
	ll maxx = 0;
	ffp(i, 1, n)
	{
		num[i] = q_;
		maxx = max(maxx, num[i]);
		se[num[i]]++;
	}

	sort(num + 1, num + 1 + n);
	ffp(i, 1, n)
	{
		if (se[num[i]] == 0) { continue; }
		if ((num[i] & 1) == 0)
		{
			ll sum = num[i]*se[num[i]];
			ll fre = num[i];
			se.erase(fre);
			while ((fre & 1) == 0 && se[fre * 3 / 2])
			{
				fre = fre * 3 / 2;
				sum += fre*se[fre];
				se.erase(fre);
			}
			ma[num[i]] = sum;
		}
		else
		{
			ma[num[i]] = num[i]*se[num[i]];
			se.erase(num[i]);
		}
	}
	for (auto e : ma)
	{
		maxx = max(e.second, maxx);
	}
	cout << maxx << endl;
	return 0;
}

还有就是题解中的一种解法

标签:maxx,GCDs,fre,ll,SWTR,num,P6786,se,gcd
From: https://www.cnblogs.com/Reisentyan/p/18607018

相关文章

  • 洛谷P6786
    题目原题链接https://www.luogu.com.cn/problem/P6786题目描述小A有一个长度为n的序列a_1,a_2,...,a_n。他想从这些数中选出一些数b_1,b_2,...,b_k满足:对于所有i(1<=i<=k),b_i要么是序列b中的最大值,要么存在一个位置j使得b_j>b_i且b_i+b_j+g......
  • D. Same GCDs
    原题链接题解\(\gcd(a+x,m)=\gcd((a+x)mod\m,m)\)由于\(x\in[0,m-1]\),所以\((a+x)mod\m\)一定能遍历完\([0,m-1]\)里的所有数所以\(\gcd(a+x,m)\)等价于\(\gcd(x,m)\)接下来,令\(d=\gcd(a,m)\),则有\(m=t_1d\),\(x=t_2d\),其中\(t_1\)与\(t_2\)互质(如果不互质,......
  • P8453 「SWTR-8」美元巨大 (位运算+贪心)
    P8453「SWTR-8」美元巨大位运算+贪心因为\(a_i=2^{b_i}\),所以每一个符号只会影响一个二进制位,也就是二进制位是独立的。考虑经典的按位考虑,从高位到低位,我们希望高位尽可能取到\(1\)并且留下更好的符号让低位能更大。考虑贪心,显然|比^的价值更大,所以在答案不会变小的情......
  • [ARC124C] LCM of GCDs 题解
    题目跳转Fake_Solution前言[warning]:本题解的做法是错法,但是正确概率贼高。离谱的是正确率还可以叠加。正解是记搜,时间复杂度可以证明。正解看文末。思考众所周知一个公式:\[a\timesb=\operatorname{lcm}(a,b)\times\gcd(a,b)\]如果你不知道——自证吧,不难。于是,移一......
  • CGCDSSQ
    妙蛙种子。CGCDSSQ首先,如果一个数\(x\)的因数\(y\)要么是自己,要么\(y\le\frac{x}{2}\)。假设\(y\neqx\),\(y>\frac{x}{2}\)。\[\frac{x}{y}<2,y|x,\frac{x}{y}=1,x=y\]矛盾。懒得写了,看题解就想起来了……......
  • [ARC124C] LCM of GCDs 题解
    题面给定\(N\)个正整数对\((a_i,b_i)\)和两个初始为空的集合\(S,T\),你可以选择将每个数对的两个元素划分到两个不同的集合中。求\[\max\operatorname{lcm}(\gcd\limits_{x\inS}x,\gcd\limits_{y\inT}y)\](\(1\leN\le50,1\lea_i,b_i\le10^9\))。题解首先,......
  • 洛谷 P8456 -「SWTR-8」地地铁铁(图论+结论)
    挺有意思的结论题,结论的证明比较复杂。据出题人说他大概想了几天几夜才证出来,所以本篇题解并不详细给出结论证明,如果有兴趣可以自己去看出题人的题解:https://www.luogu.com.cn/blog/AlexWei/solution-p8456。首先涉及到简单路径,肯定往双连通分量的方向思考。因此我们首先建出圆方......
  • P5858 「SWTR-03」Golden Sword DP+单调队列模板
    P5858「SWTR-03」GoldenSword-洛谷|计算机科学教育新生态(luogu.com.cn) 理解题意后,我们知道贪心和暴力枚举显然是不行的,联想到DP我们设置dp[i][j]表示,第i种......
  • 「SWTR-04」Lining up
    链接:https://www.luogu.com.cn/problem/P6212题目描述:有一个串,每个字符为\(A,B,?\)中的一个。\(?\)会是\(A,B\)中等概率随机的一个字符,若有一个点为\(A\),其后面的点为\(B......
  • P6786 「SWTR-6」GCDs & LCMs
    题意:小A有一个长度为\(n\)的序列\(a_1,a_2,\cdots,a_n\)。他想从这些数中选出一些数\(b_1,b_2,\cdots,b_k\)满足:对于所有\(i\(1\leqi\leqk)\),\(b_i\)要么是......