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

 

 

计算机毕业设计springboot股票模拟交易系统的设计与实现u6m959【附源码+数据库+部署+LW】 选题背景: 随着互联网和金融科技的快速发展,股票市场成为了吸引人们关注和参与的重要领域之一。越来越多的人开始对股票投资感兴趣,希望通过交易股票来获取收益。然而,对于初学者来说,股票市场的复杂性和风险往往让他们望而却步。因此,设计和实现一个股票模拟交易系统,可以帮助初学者更好地理解和掌握股票交易的规则和技巧,提高他们的投资决策能力。 意义: 股票模拟交易系统的设计与实现具有以下几个重要意义: 提供实践机会:股票模拟交易系统为投资者提供了一个实践的平台,使他们能够在真实市场环境下进行模拟交易,了解股票市场的 阅读详情

相关推荐

从放弃到再入门之拉格朗日对偶问题推导

普通同学的解法 无约束条件:求导就可以了 等式约束:代入消元,再求导 不等式约束:分情况讨论(在边界上和不在边界上),分别对应1,2的情况 然而发现,有些情况消元特别复杂,甚至不能求解 聪明同学的解法 发现:在最优点的情况下,约束曲面的法向量和目标函数的梯度反向必相同或相反 拉格朗日乘子法如何理解? (在2维里可以形象的解释为z=f(x,y)在约束条件g(x,y)=c中,极值...

qq_34564612的博客 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

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

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

奔跑的犀牛先生 2800

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1123

AD9026芯片开发实战指南:从硬件配置到射频校准

本文为AD9026芯片开发实战指南,详细解析了从硬件设计、电源时钟配置、SPI初始化到多芯片同步与JESD204高速链路建立的完整流程。重点探讨了射频校准技术,包括初始化校准与跟踪校准,以保障5G、MIMO等现代通信系统所需的射频性能。旨在帮助开发者系统掌握这颗高性能射频收发器的应用,规避常见设计陷阱。

tomato的博客 851

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

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

weixin_34290096的博客 598

西门子S7-1500 PLC模块化编程与生产线自动化实践

PLC(可编程逻辑控制器)作为工业自动化核心设备,其模块化编程技术能显著提升产线控制系统的开发效率。通过SCL高级语言实现算法封装、功能块(FB)复用等工程实践,可构建稳定可靠的分层式控制架构。本文以西门子TIA Portal平台为例,详解S7-1500系列PLC在汽车零部件产线中的标准化应用方案,包含配方管理、设备联动等典型场景的SCL实现,以及Profinet通信、虚拟轴同步等进阶技巧。特别适用于需要快速实施中大型生产线自动化改造的工程师,提供经过验证的异常处理机制和模块化设计规范。

weixin_34341229的博客 457

扩展欧拉定理

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

一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录

只要一个用户在 SAP ABAP 系统里浏览过 BSP 页面,会留下浏览历史记录。本工具会解析出这些记录,打印出该用户浏览的历史事件,和浏览过的页面名称。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 546

图像标注神器:完全开源免费的多功能标注工具Labelme详解

Labelme是MIT开发的免费开源图像标注工具,支持多边形、矩形等多种标注类型,适用于目标检测、分割等计算机视觉任务。提供Windows可执行文件和Python安装两种方式,可输出JSON格式并转换为COCO等标准数据集。具有跨平台、功能全面、社区活跃等优势,能显著提升标注效率,是AI视觉项目的重要数据准备工具。

数字人生 528

欧拉函数及其扩展

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

C# 与 PaddleOCR:一行代码实现高效图片文字识别的实战指南

本文介绍了如何使用 PaddleOCRSharp 进行图像文字识别,涵盖了从环境准备到高级功能的完整流程。首先,通过 NuGet 安装 PaddleOCRSharp 并下载预训练模型。接着,展示了单张图片识别的最小化示例和详细实现,包括模型配置、图片预处理和结果输出。进阶功能部分介绍了多语言和竖排文本识别的实现方法。此外,文章还提供了 WinForms 图形界面开发的完整示例,展示了如何通过界面加载图片、执行识别并展示结果。最后,探讨了批量处理优化策略,如并行处理多张图片以提高性能。通过这些步骤,开发者可以

墨夶的博客 1004

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

欧拉公式

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

组合数学之容斥原理

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

北门的智慧 6056

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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、付费专栏及课程。

余额充值