hdu6363组合数学+容斥+扩展欧拉

几何算法——10.欧拉操作 几何造型的欧拉操作 阅读详情

参考:DLS的代码orz,官方题解

 

前置技能:

1.N个相同的球放K个不同盒子,可以空盒:C(n+k-1,k-1)(插板法可证)

2.第二行到第三行可以归纳证明

3.扩展欧拉公式,phi(p)=p-1

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
const int _=1000005;
int fb[_];//斐波那契 
int jc[2*_];//阶乘 
int jv[2*_];//阶乘的逆元 
int qmod(int a,int b)
{
	int res=1;while(b)
	{
		if(b&1)res=1ll*res*a%mod;
		a=1ll*a*a%mod;b=b>>1;
	}
	return res;
}
void init()
{
	fb[0]=0;fb[1]=1;jc[0]=1;jv[0]=1;
	for(int i=2;i<_-2;i++)fb[i]=1ll*(fb[i-1]+fb[i-2])%(mod-1);//扩展欧拉 %(mod-1) 
	for(int i=1;i<2*_;i++)jc[i]=1ll*jc[i-1]*i%mod;
	jv[2*_-1]=qmod(jc[2*_-1],mod-2);
	for(int i=2*_-2;i>=1;i--)jv[i]=1ll*jv[i+1]*(i+1)%mod;	
} 
vector<int>d;int ans[_];
void get(int n)//得N的因子 
{
	for(int i=1;i<=n/i;i++)
		if(n%i==0)
		{
			if(n!=i*i)d.push_back(i),d.push_back(n/i);
			else d.push_back(i);	
		}	
	sort(d.begin(),d.end());
}
int getC(int a,int b)
{
	return 1ll*jc[a]*jv[b]%mod*jv[a-b]%mod;
}
int main()
{
	init();
	//printf("%d\n",getC(7,3));
	int T;scanf("%d",&T);
	while(T--)
	{
		int n,k;scanf("%d %d",&n,&k);int res=0;
		d.clear();get(n);
		for(int i=0;i<d.size();i++)ans[i]=getC(n/d[i]+k-1,k-1)%mod;//枚举gcd为d[i],剩下n/d[i]球个分到k个不同的盒子里,可以空盒 
		
		//至此,ans[i]:gcd至少为i的方案数
		//举个例子N=8,ans[2]=f[2]+f[4]+f[8];ans[4]=f[4]+f[8];ans[8]=f[8]; 
			
		for(int i=d.size()-1;i>=0;i--)
			for(int j=i+1;j<d.size();j++)
				if(d[j]%d[i]==0)ans[i]=1ll*(ans[i]-ans[j]+mod)%mod;//因子容斥 ,算是常见套路! 
				
		//for(int i=0;i<d.size();i++)printf("%d %d %d\n",d[i],ans[i],fb[d[i]]);		
		
		//至此,ans[i]:gcd为i的方案数		
		for(int i=0;i<d.size();i++)
			(res+=1ll*ans[i]*(qmod(2,fb[d[i]])-1)%mod )%=mod;//对每个gcd算贡献 
			
		res=1ll*res*qmod(getC(n+k-1,k-1),mod-2)%mod;//除以总情况,便是期望 
		printf("%d\n",(res+mod)%mod);
	}	
} 

 

 

CCS环境下ADC采样波形的实时可视化调试技巧 本文详细介绍了在CCS环境下实现ADC采样波形实时可视化的调试技巧。通过数组缓存优化、多通道同步显示和波形测量工具的高级用法,帮助开发者高效调试嵌入式系统中的ADC采样问题,提升信号分析的准确性和效率。 阅读详情

相关推荐

联想拯救者r7000p在ubuntu20.04未找到wifi适配器,安装rtl8852ae网卡驱动问题解决方案

新买的拯救者r7000p 2021款,装完ubuntu20.04之后显示未找到wifi适配器, 更换N次源之后还是只有一个显卡驱动,在网上找了很多方法,再自己折腾了一段时间后,总算是解决了这个问题。 1.设置bios 打开主板系统,将security boot设置为disenable,因为设计到修改内核配置,必须得关掉安全启动。 2.查询网卡状态 使用命令查询网卡(hardware of Internet)状态 lshw -C network 因为是双系统,在Windows下控制面板-设备管理器中可以

MCZ777的博客 1万+

组合 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 的理解

组合的递推公式 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 等价于C(N + 1, K + 1) = C(N, K + 1) + C(N, K) ,即K和N分别加1。 通过观察 C(N + 1, K + 1) = C(N, K + 1) + C(N, K) 右边第二项C(N, K)为“在N件中取K件的组合数”,左边一项C(N + 1, K + 1)为“在N...

weixin_30709061的博客 1910

自适应IIR格型滤波器的Matlab实现

概述 在现有的众多抑制窄带干扰的信号处理手段中,时域自适应陷波干扰抑制技术具有实现简单、抗干扰性能好等优点。IIR陷波器按照结构可以分为直接型和格型两种。相比自适应直接型IIR陷波器,自适应格型IIR陷波器不仅可以准确地控制滤波器的陷波频率,也可以准确地调整陷波器的带宽。 传递函数 二阶自适应IIR格型陷波器的传递函数H(z)为: 其中α与陷波带宽有关,β与陷波频率有关;对应的结构如下图所示: Matlab算法实现 ...

剑藏锋的博客 2799

概率论的学习整理--番外1:可重复且无次序的计数公式C(n+k-1,k) 的例题 : 同时丢3个骰子,会有多少种情况?答案不是216而是56!

计数重复,且不在乎次序的公式C(n+k-1,k) , 同时丢3个骰子,会有多少种情况?答案不是216而是56!

奔跑的犀牛先生 2800

5G NR 物理层 流程一:从帧结构到TB块,PDSCH/PUSCH 资源映射与TBS计算实战

本文详细解析了5G NR物理层流程,从帧结构到TB块的计算,重点介绍了PDSCH/PUSCH资源映射与TBS计算的实战方法。通过具体案例和公式推导,帮助工程师掌握5G NR资源分配、MCS选择及TBS量化过程,解决实际部署中的常见问题。

weixin_30897233的博客 94

ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定

本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。

weixin_30664051的博客 513

学习:数学----欧拉定理与扩展欧拉定理

欧拉定理和扩展欧拉定理可以解决形如5100000000000000000000等大数幂取模或者求ax mod n=1的大于1的最小x值等一类问题,其中欧拉函数占巨大的重要性,有效的将复杂的大数幂取模问题转化为简单的大数取模和快速幂问题,下面就来介绍一下基本的欧拉定理和扩展欧拉定理 欧拉函数的定义 欧拉函数Φ(n)指1至n以内,与n互质的数的个数 当n比较小...

weixin_34290096的博客 598

Matcap与菲涅尔

菲尼尔效果(简化版公式):fresnel = base + scale*((1-v*n)^power)透明队列为后前渲染,不关闭深度写入则会覆盖之前的像素,导致混合不了。y的值为0~1,根据x3返回对应y值。两色混合做个demo看看!混合为什么要关闭深度写入?

weixin_62773441的博客 371

扩展欧拉定理

ab≡x(modm)求xab≡x(modm)求x a^b≡x(mod m) 求x gcd(a,m)=1,欧拉定理:ab≡a的(bmodφ(m))次方(modm)gcd(a,m)=1,欧拉定理:ab≡a的(bmodφ(m))次方(modm)gcd(a,m)=1,欧拉定理:a ^ b ≡a 的( b mod φ ( m ) )次方 (mod m) gcd(a,m)&gt;1,且b&gt...

hychychyc 265

告别JavaScript!C#通过WebAssembly在浏览器中实现“原生级“性能

C# + WebAssembly:前端开发的革命性替代方案 摘要:本文探讨了C#通过WebAssembly取代JavaScript开发前端应用的新趋势。文章分析了JavaScript的局限性(弱类型、回调地狱等),并详细介绍了C#+WebAssembly组合的优势:强类型系统、高性能、多线程支持和代码重用。技术实现方面,阐述了C#通过Mono/.NET编译为WebAssembly字节码的原理,重点介绍了Blazor框架的两种模式。文章还提供了实战指南,包括项目创建、多线程配置,以及一个与ChatGPT AP

墨夶的博客 946

【人工智能时代】- 一键部署本地AI大模型

Ollama是一个开源项目,致力于简化大型语言模型(LLM)的本地部署过程。它允许用户在自己的硬件上运行和测试最新的语言模型,无需依赖云服务。Ollama提供了一个类似于OpenAI的API接口,使得开发者可以轻松地在自己的应用程序中集成大型语言模型。此外,Ollama WebUI为用户提供了一个友好的界面,用于管理和与模型进行交互。

xiaoli8748的专栏 2379

欧拉函数及其扩展

欧拉函数        对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。例如euler(8)=4,因为1,3,5,7均和8互质。      Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。euler(1)=1(唯一和1互质的数就是1本身

林下的码路 1022

Allegro输出光绘文件规范

添加钻孔表的具体步骤为:1.通过屏幕右边的Visibility选项的Views列表,将Drill层打开2.将Visibility选项中的PIN和Via选项都选中,见下图所示: 参数设好之后关闭NC Drill/Parameters窗口,输出数控机床钻孔文件的命令菜单为:Manufacture=>NC=>NC Drill…,打开的窗口如下: 输出数控机床钻孔文件的具体步骤为: 上图是光绘输出的层控制窗口,还有一个窗口是输出参数的控制窗口,我们通过点击上图的第二个列表项General Parameters来

axingxiansen的博客 2808

HDU-6363 bookshelf 容斥原理

bookshelf Problem Description Patrick Star bought a bookshelf, he named it ZYG !! Patrick Star has N book . The ZYG has K layers (count from 1 to K) and there is no limit on the capacity of each ...

Qantun_Mechanics的博客 651

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

欧拉公式

欧拉公式(英语:Euler’s formula,又称尤拉公式)是在复分析领域的公式,将三角函数与复数指数函数相关联,因其提出者莱昂哈德·欧拉而得名。尤拉公式提出,对任意实数 xx,都存在: ejx=cosx+isinxe^{jx}=\cos{x}+i\sin{x} 其中jj是虚数单位。由上式,我们可以推导出: sinϕ=12j(ejϕ−e−jϕ)\sin{\phi}=\frac{1}{2j}(

Echo的专栏 14万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

组合数学之容斥原理

组合数学之容斥原理在组合数学中,容斥是常常被用到的,我们总用容斥求解一些带有条件的组合数。 容斥原理:具有性质A和性质B的元素个数等同于具有性质A的个数和具有性质B的个数的和再减去同时具有性质A和性质B的元素的个数。 数学公式表示为 |A∪B|=|A|+|B|-|A∩B|。 图形表示为 其中黄色区域就是我们所求。 同样以此类推对于三个性质来说其数学公式为|A∪B∪C|=|A|+|B|+|C

北门的智慧 6056

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDU6363

先要知道几个结论gcd(2^a-1,2^b-1)=2^(gcd(a,b))-1;还得知道gcd(F[cnt1],F[cnt2])=F[gcd(cnt1,cnt2)],这两个结论都可用数学归纳法来推导,推导第二个还要知道F数组相邻两个元素互质,那么此题对于一个gcd来说,他的贡献是2^(F(gcd))-1这么多。而对于把n分成k份使得他的gcd为gcd的倍数,n本书相同,k个书架不同,那么方案数为c...

binarycopycode 451

HDU-6363 bookshelf(莫比乌斯反演)

bookshelf Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 208    Accepted Submission(s): 96   Problem Description Patrick Star bought a book...

十分残念的博客 894

bookshelf HDU - 6363(数论结论+莫比乌斯反演)

bookshelf HDU - 6363 Patrick Star bought a bookshelf, he named it ZYG !! Patrick Star has N book . The ZYG has K layers (count from 1 to K) and there is no limit on the capacity of each layer ! No...

codeswarrior的博客 608

HDU 6363 BookShelf

两个结论 gcd(fib(a),fib(b))=fib(gcd(a,b)) GCD FIB gcd(2^a−1,2^b−1) = 2 ^ gcd(a,b)-1 这个我翻了一本初等数论书然后在第六页就找到了。。。。。。 具体来说通过 gcd(2^a−1,2^b−1) =gcd(2^a - 1 - (2 ^ b - 1) * 2 ^ (a - b) , 2 ^ b - 1) =gcd(...

Freopen的博客 314

世界上最完美的公式 ----欧拉公式

摘自:http://blog.163.com/sg_ljb/blog/static/4425180420103144343202/  欧拉公式     在数学历史上有很多公式都是欧拉(leonhard euler 公元1707-1783年)发现的,它们都叫做   欧拉公式,它们分散在各个数学分支之中。   (1)分式里的欧拉公式:    a^r/(a

li_qcxy的专栏 1万+

HDU3439 Sequence

今天下午学习了二项式反演,做了一道错排的题,开始了苦逼的经历。 显然答案是C(︀n,k)︀*H(n − k).其中H(i)为长度为i的错排序列 然后经过课件上一番二项式反演的推导 我就写了个扩展卢卡斯然后交上去了。 一直t啊..... 我算了算复杂度差不多是O(T*P*log^3P) 后来剪了剪枝,应该低了点。 还是t啊..... 我搜了搜题解发现没有我这么写的。 看了一下错...

weixin_30648963的博客 170

[真学习笔记] 前夕 - 单位根反演 - 广义容斥

这次是真的学习笔记了…… 真正意义上搞明白广义容斥实在说啥…… 真正搞明白了单位根的那个性质…… 题目大意:有个大小为n的集合S,求所有选出若干非空且互不相等的子集使得交集大小是k的倍数。要求一个O(nk)的做法。 先来说说二项式反演这件事情: P(x)=∑xk=0Q(k)(xk)Q(x)=∑xk=0P(k)(xk)(−1)x−kP(x)=∑k=0xQ(k)(xk)Q(x)=∑k=0xP...

Mys_C_K的博客 2064

HDOJ1465

 不容易系列之一Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 556    Accepted Submission(s): 219Problem Description大家常常感慨,要做好一件事情真的不容易,确实,失败比成

童戏兔腾的专栏 1928

组合数学题集

bzoj 1008 逆向思维。一共有m^n种状态 我们考虑不越狱的情况 第一个人有m种选择,后面的所有人均是m-1种选择 那么方案数就是 m^n - m * (m - 1) ^ (n - 1) 快速幂就好 其实不难,自己不要怕,心理不要有障碍 #include&lt;bits/stdc++.h&gt; #define REP(i, a, b) for(register int i =...

自强不息 厚德载物 1058

二项式反演(广义容斥定理)学习笔记

背景: 解锁新姿势。 说白了就是之前会的姿势太少了。 正题: 说白了就是有这样两条恒等的式子: fn=∑i=0n(−1)iCnigi⟺gn=∑i=0n(−1)iCnifif_n=\sum_{i=0}^{n}(-1)^iC_{n}^{i}g_i⟺g_n=\sum_{i=0}^{n}(-1)^iC_{n}^{i}f_ifn​=i=0∑n​(−1)iCni​gi​⟺gn​=i=0∑n​(−1)iCn...

zsyz_ZZY的博客 797
上一篇: BZOJ4555 NTT或多项式求逆或CDQ+NTT
下一篇: 莫比乌斯反演 hdu6390
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值