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);
	}	
} 

 

 

VSCode配置C/C++开发环境:从零安装MinGW-w64并运行第一个C程序 在Windows系统上搭建C语言开发环境时,很多初学者混淆编辑器、编译器与调试器的分工,导致配置过程屡屡受挫。理解VSCode作为轻量级编辑器的定位,以及MinGW-w64提供的gcc编译器在源码编译中的核心作用,是顺利完成环境配置的关键。环境变量的正确设置直接影响gcc命令能否全局调用,而C/C++插件则赋予编辑器语法高亮与智能提示能力。通过安装VSCode、配置MinGW-w64、安装插件、汉化界面并运行一个最简单的hello.c程序,就能系统掌握这套开源工具链的完整工作流。无论是用于课程学习、算法练习 阅读详情

相关推荐

Nginx配置Cookie安全属性:HttpOnly、Secure、SameSite实战指南

Cookie是Web应用中维持用户状态的核心机制,其安全配置直接关系到会话管理与身份认证的可靠性。从原理上讲,HttpOnly属性可防止XSS攻击窃取Cookie,Secure属性确保Cookie仅在HTTPS加密连接中传输,而SameSite属性则用于控制跨站请求时Cookie的发送行为,能有效防御CSRF攻击。这些安全属性的技术价值在于构建纵深防御体系,提升应用的整体安全性。在现代浏览器(如Chrome 80+)默认将未明确声明的Cookie视为SameSite=Lax的背景下,正确配置这些属性变得尤为

weixin_33783283的博客 320

组合 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

人工智能在高中教育中的应用现状剖析与挑战应对

人工智能在高中教育中的应用现状剖析与挑战应对

燕鹏 1338

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

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

奔跑的犀牛先生 2800

UVM和System verilog笔记总结(四)

virtual sequence 即虚seq,用于管理多个实sequence的执行顺序。 下面有三个sequence,此时需要virtual sequence去管理这三个的顺序。 virtual sequence和virtual sequencer需要成对写,使用例化实的sequence和sequencer控制: 此时在virtual sequence里面启动,而不是之前在test.sv里面用default或start函数启动。具体方法如下:先例化 再启动,用 `uvm_do_on 实sequence

weixin_42655118的博客 642

Intel Realsense windows安装与入门

realsense400系列介绍: https://www.intelrealsense.com/stereo-depth/?utm_source=intelcom_website&utm_medium=button&utm_campaign=day-to-day&utm_content=D400_learn-more_button realsense 435i介绍: ...

hanshuning的专栏 1万+

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

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

weixin_34290096的博客 598

【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

Dify集成 Echarts 实现智能数据报表集成与展示实战详解

congge 5961

扩展欧拉定理

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

【Zephyr存储专题】09_LittleFs文件系统操作

本文档旨在为开发者介绍Zephyr下Littlef's文件系统相关配置使用指南

zero的博客 3246

【传感器模块项目实战】自动驾驶/机器人相关传感器原理及标定

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、IMU二、相机三、激光雷达四、轮速里程计五、GPS/RTK六、毫米波雷达总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【自动驾驶相关传感器原理及标定】**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、IMU IMU惯导系统的特性(imu_calc函数功能) IMU运行的

qq_35635374的博客 1231

欧拉函数及其扩展

欧拉函数        对正整数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

泰山派rk3566 audio音频基础介绍

本文介绍了嵌入式系统中音频处理的基础知识,重点围绕RK3566平台的音频子系统展开。文章首先解释了音频信号从模拟到数字的转换过程,包括采样率、位深和声道等核心概念。随后详细分析了嵌入式音频开发中的关键接口:I2C用于控制音频编解码器,I2S作为专用音频数据传输总线,以及PCM作为原始音频格式和ALSA设备抽象的双重含义。通过对这些基础概念和接口的解析,为在RK3566平台上进行音频驱动开发和应用调试提供了理论基础。

qq_37077309的博客 294

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

欧拉公式

欧拉公式(英语: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万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

组合数学之容斥原理

组合数学之容斥原理在组合数学中,容斥是常常被用到的,我们总用容斥求解一些带有条件的组合数。 容斥原理:具有性质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、付费专栏及课程。

余额充值