首页 > 其他分享 >P9238 [蓝桥杯 2023 省 A] 翻转硬币

P9238 [蓝桥杯 2023 省 A] 翻转硬币

时间:2024-01-28 21:56:07浏览次数:23  
标签:prime mu P9238 limits sum rfloor 蓝桥 2023 lfloor

题目传送门

受益良多啊……

设 \(f(i)\) 表示第 \(i\) 枚硬币是否需要被翻转,以下所有运算均在模 \(2\) 意义下进行。

初始化 \(f(1)=1\),递推式有 \(f(i)=\sum\limits_{d\mid i,d\ne i}f(d)\),答案即求 \(\sum\limits_{i=1}^nf(i)\)。

观察发现 \(\sum\limits_{d\mid i}f(d)=2f(i)=[i=1]\),写成卷积形式就是 \(f*I=\epsilon\),反演一下得 \(f=\mu\)。

当 \(\mu(i)=-1\) 时,可令 \(f(i)\leftarrow 1\),因此答案即求 \(\sum\limits_{i=1}^n\mu^2(i)\)。

来到本题一个重要的 Trick —— \(\mu^2\) 的前缀和计算

考虑 \(\mu^2(i)\) 的实际意义,即 \(i\) 是否含有平方因子。那么将 \(i\) 质因数分解得 \(\prod p_i^{c_i}\),令 \(P=\prod p_i^{\lfloor c_i/2\rfloor}\),那么 \(\mu^2(i)=1 \Leftrightarrow P=1\)。因此有 \(\mu^2(i)=[P=1]=\sum\limits_{d\mid P}\mu(d)=\sum\limits_{d^2\mid i}\mu(d)\)。

所以

\[\sum\limits_{i=1}^n\mu^2(i)=\sum\limits_{i=1}^{\sqrt{n}}\mu(i)\left\lfloor\dfrac{n}{i^2}\right\rfloor \]

那么问题就涉及到了高次整除分块。对 \(\left\lfloor\dfrac{n}{i^2}\right\rfloor\) 整除分块,\(r=\sqrt{\left\lfloor\dfrac{n}{\left\lfloor\dfrac{n}{i^2}\right\rfloor}\right\rfloor}\),时间复杂度 \(\mathcal{O}(n^{\frac{1}{3}})\)。

预处理 \(\mathcal{O}(n^{\frac{2}{5}})\) 的前缀和可以做到复杂度 \(\mathcal{O}(n^\frac{2}{5})\),证明太难不会。

#include<bits/stdc++.h>
#define LL long long
using namespace std;

const int N=1.6e7+10;

LL n,lim,ans;
int v[N],prime[N],mu[N],sum[N],tot;
unordered_map <LL,LL> tmp;

void prework()
{
	mu[1]=1;
	for(int i=2; i<=lim; i++)
	{
		if(!v[i])
		{
			v[i]=i;
			prime[++tot]=i;
			mu[i]=-1;
		}
		for(int j=1; j<=tot; j++)
		{
			if(prime[j]>v[i] || prime[j]>lim/i)
				break;
			v[i*prime[j]]=prime[j];
			if(i%prime[j]==0)
				break;
			mu[i*prime[j]]=-mu[i];
		}
	}
	for(int i=1; i<=lim; i++)
		sum[i]=sum[i-1]+mu[i];
}

LL query(LL n)
{
	if(n<=lim)
		return (LL)sum[n];
	auto it=tmp.find(n);
	if(it!=tmp.end())
		return it->second;
	LL res=1;
	for(LL l=2,r; l<=n; l=r+1)
	{
		r=n/(n/l);
		res-=(r-l+1)*query(n/l);
	}
	return tmp[n]=res;
}

signed main()
{
	scanf("%lld",&n);

	lim=powl(n,2.0/5)+10;
	prework();

	for(LL l=1,r; l<=sqrtl(n); l=r+1)
	{
		r=sqrtl(n/(n/(l*l)));
		ans+=(query(r)-query(l-1))*(n/(l*l));
	}

	printf("%lld\n",ans);

	return 0;
}

标签:prime,mu,P9238,limits,sum,rfloor,蓝桥,2023,lfloor
From: https://www.cnblogs.com/xishanmeigao/p/17993490

相关文章

  • 2023 学年第一学期杭州市滨江区九年级期末教学质量检测 游记
    前言\(\text{OI}\)生涯太失败了,就像,度过一个不玩原神的失败人生。果然,想象学竞赛不适合没有想象力的我。集训的三个月里,年排\(10/520\rightarrow101/520\rightarrow149/520\)。甚至被小情侣打爆了。成为最大小丑。真的快要没高中上了。打算回归幼儿园,再不行就回归胎教。只......
  • 2023年阿里达摩院全球数学竞赛 预赛 第四题
    为了对本人本科+研究生的学习作个交代,现在最起码每天刷点高数,直至3小时能拿下数学题吧。今天早上饶有兴趣地逛了自己的知乎,于是看到收藏的2023年阿里数学竞赛,预赛。第四题,那么过程就放上来吧! 题目  解题1.一开始我思索着,直击写一段代码,让计算机帮我算。所以我关注......
  • 2024最新分享FabFilter Total bundle 2023 for Mac 直装版
    FabFilter音频插件工具集,共包含14款音频插件。这14款插件分别是均衡器、混响、压缩器、多频段动态、限幅器、扩展器、创意多频带失真、延迟、滤波器和合成器。通过这些插件,用户可以满足制作混音和母带的需求。FabFilterTotalbundle2023forMac直装版FabFilterTotalBundl......
  • NOIP2023 游记
    记忆已经不太清晰,所以写的不多。终究还是懒,现在才开始写游记。先说战绩,146,1=线153,遗憾离场。考前一天晚上让zxy给买了点零食,他的品味还是不错的。跟他讨了一包陈皮味的压片糖,有点涩。晚上去历城二中试机,实际上键盘不错,和我们平常用的差不多,我看桌面上有vscode,但是没装插件......
  • 可观测性之到底卡在了哪里,2023年再撒谎网慢就说不过去了
    前言互联网下行带来灵魂追问。钱花哪去了?产出在哪里?动辄自建的遮羞布逐步显现,不过自建的成本可能还不是最大的负担,掣肘的可能是把不重要的事情当成了主业来做,比如:互联网+比如数字化转型比如研发效率和devops比如可观测性本次要“安利”的新功能叫做应用Span请求耗时分布显示,建议......
  • 你好, 2023,最该问自己的7个问题
    适合打印下来放在日历上7个简单问题,快速反思2022,让2023勇往直前1.被"炒鱿鱼"收获成功需要不断分析什么有用,什么无用假如能掌控人生,要想更加成功,该放弃什么,开始什么,这两者间,什么在阻挡你?假如能掌控人生,从今天开始,我会立刻停止哪些事情?2.增加与减少享受爬山的过程,自然能登顶什么能......
  • 给定时间 2023年09月10日 在此时间上,加一个月
    packagecom.sleepman.pers;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;importjava.util.Calendar;importjava.util.Date;publicclassDemo{publicstatic......
  • 2023-2024七上期末考游记
    Jan.15Day0明天考试,怎么说呢,丝毫不紧张。边上的XZY还问我题目嘞。我书本看都不看一眼。Jan.16Day1上午考语文,作文貌似被我押中了(写的超长,差点写不下)。前面的题目比较简单(除了我脑子抽了乱写了一题),阅读理解是童话,但我题没看仔细。(标准答案每题都要提到有情人终成眷属,我无语......
  • 逆周期引领行业回暖 2023年vivo坐稳国产第一
    最近,微软的市值超越苹果,成为全球“最值钱”的公司。这场超越源于2014年开始的自我变革,全面转型云计算,引爆则是在2023年将ChatGPT植入其各个产品线。苹果曾在2010年5月,取代当时的全球市值霸主微软公司,自此雄踞“全球市值最高公司”宝座14年。此前,从乔布斯回归苹果到市值登顶,也用了14......
  • 2023.12.9 总结
    T1题意:一枚棋子每一步只能走到与它原位置不同行与不同列的位置,现在将其放在一个\(R\)行\(C\)列的棋盘中,此棋子走\(N\)步,经过的点构成一个排列,问有多少种不同排列?\((R,C,N\le200)\)初步思路此题是\(DP\)。设\(f_{i,j,u}\)为走了\(i\)步,在\(j,u\)位置的走法,每一......