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

【嵌入式硬件】LAN9253说明书(中文版) LAN9253是一款2/3端口EtherCAT从站控制器,具有双集成以太网PHY,每个PHY包含一个全双工100 BASE-TX收发器,支持100 Mbps(100 BASE-TX)操作。 LAN 9253支持HP Auto-MDIX,允许使用直接连接或交叉LAN电缆。支持EtherCAT P和信号质量指数PHY诊断。 LAN9253包括一个EtherCAT从站控制器,带有8K字节的双端口存储器(DPRAM)和8个现场总线存储器管理单元(FMMU)。每个FMMU将逻辑地址映射到物 阅读详情

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 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 !

Now Patrick want to put all N books on ZYG :

1. Assume that the i-th layer has cnti(0≤cnti≤N) books finally.

2. Assume that f[i] is the i-th fibonacci number (f[0]=0,f[1]=1,f[2]=1,f[i]=f[i−2]+f[i−1]). 

3. Define the stable value of i-th layers stablei=f[cnti].

4. Define the beauty value of i-th layers beautyi=2stablei−1.

5. Define the whole beauty value of ZYG score=gcd(beauty1,beauty2,...,beautyk)(Note: gcd(0,x)=x).

Patrick Star wants to know the expected value of score if Patrick choose a distribute method randomly !

Input

The first line contain a integer T (no morn than 10), the following is T test case, for each test case :

Each line contains contains three integer n,k(0<n,k≤106).

Output

For each test case, output the answer as a value of a rational number modulo 109+7.

Formally, it is guaranteed that under given constraints the probability is always a rational number pq (p and q are integer and coprime, q is positive), such that q is not divisible by 109+7. Output such integer a between 0 and 109+6 that p−aq is divisible by 109+7.

Sample Input

1 6 8

Sample Output

797202805

题意:把N本书放到K层的书架上,每一层的美丽值为b_{i}=2^{f[cnt]}-1,其中cnt是这一层书的数量,f[x]为斐波那契数列,整个书架的美丽值为gcd(b_{1},b_{2},...,b_{k}),问整个书架的美丽值的期望

题解:数学选手不在的第N天,,,莫比乌斯都要自己敲了。。。结果还敲残,改成容斥才过。。。

首先有个规律:gcd(x^{a}-1,x^{b}-1)=x^{gcd(a,b)}-1

这样就可以把gcd(b_{1},b_{2},...,b_{k})化简为2^{gcd(f[cnt1],f[cnt2],...,f[cntk])}-1

打表还可以知道一个规律:gcd(f[x],f[y])=f[gcd(x,y)]

于是可以进一步化简公式为2^{f[gcd(cnt1,cnt2,...,cntk)]}-1

这样就只要枚举gcd,计算gcd出现的次数,就能知道gcd的贡献了,这个显然可以用莫比乌斯反演来做。

首先有隔板法:将N分解成k个非负整数的和有C_{n+k-1}^{k-1}种方法。并且考虑到k个最大公因数的为gcd的数之和,一定能整除gcd。

那么,将N分解成k个gcd的倍数的和有C_{\frac{n}{gcd}+k-1}^{k-1}种方法

此时gcd的贡献为C_{\frac{n}{gcd}+k-1}^{k-1}\times (2^{f[gcd]}-1)

当然这里有重复情况,只要枚举gcd的倍数,用莫比乌斯系数容斥一下即可:f(gcd)=\sum_{gcd|p}u(\frac{p}{gcd})F(p)=\sum_{gcd|p}u(\frac{p}{gcd})C_{\frac{n}{p}+k-1}^{k-1}

#include <bits/stdc++.h>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define x first
#define y second
#define rep(i,a,b) for(int i=a;i<b;++i)
#define per(i,a,b) for(int i=a-1;i>=b;--i)
#define fuck(x) cout<<'['<<#x<<' '<<(x)<<']'
#define FIN freopen("in.txt","r",stdin);
using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef pair<int, int> PII;

const int INF = 0x3f3f3f3f;
const ll INFLL = 0x3f3f3f3f3f3f3f3fll;
const int mod = 1e9 + 7;
const int MX = 2e6 + 5;

ll F[MX], invF[MX];
ll power(ll a, ll b) {
    ll ret = 1;
    while(b) {
        if(b & 1) ret = (ret * a) % mod;
        a = (a * a) % mod;
        b >>= 1;
    }
    return ret;
}
void initc() {
    F[0] = 1;
    for(int i = 1; i < MX; i++) {
        F[i] = (F[i - 1] * i) % mod;
    }
    invF[MX - 1] = power(F[MX - 1], mod - 2);
    for(int i = MX - 2; i >= 0; i--) {
        invF[i] = invF[i + 1] * (i + 1) % mod; //invF[i]*i!=1,invF[i+1]*i!*(i+1)=1
    }
}

ll C(int n, int m) {
    if(n < 0 || m < 0 || m > n) return 0;
    if(m == 0 || m == n)    return 1;
    return F[n] * invF[n - m] % mod * invF[m] % mod;
}
int prime[MX], mob[MX], p[MX];
void init() {
    int pnum = 0;
    memset (prime, true, sizeof (prime) );
    mob[1] = 1;
    for (int i = 2; i < MX; i++) {
        if (prime[i]) {
            p[pnum ++] = i;
            mob[i] = -1;
        }
        for (int j = 0; j < pnum && (ll) i * p[j] < MX; j++) {
            prime[i * p[j]] = false;
            if (i % p[j] == 0) {
                mob[i * p[j]] = 0;
                break;
            }
            mob[i * p[j]] = -mob[i];
        }
    }
}
ll fob[MX];
int main() {
    fob[0] = 0; fob[1] = 1;
    rep(i, 2, MX) fob[i] = (fob[i - 1] + fob[i - 2]) % (mod - 1);
    init(); initc();
    int T;
    //FIN;
    cin >> T;
    while(T--) {
        int n, k; scanf("%d%d", &n, &k);
        ll ans = 0;
        rep(i, 1, n + 1) {
            if(n % i) continue;
            ll t = 0;
            for(int j = i; j <= n; j += i)
                if(n % j == 0) t = (t + mob[j / i] * C(n / j + k - 1, k - 1) + mod) % mod;
            ans = (ans + t * (power(2ll, fob[i]) - 1 + mod)) % mod;
        }
        ll dx = C(n + k - 1, k - 1);
        dx = power(dx, (ll)mod - 2);
        printf("%lld\n", ans * dx % mod);
    }
    return 0;
}

 

openssl命令数据摘要详解(SM3、sha256、MD5、dss1、mdc2、ripemd160) SM3是由中国密码学家设计的密码哈希函数,是中国国家密码管理局(National Cryptographic Authority,简称:CNCA)颁布的国家密码算法标准。SM3属于密码杂凑函数家族,它可以计算任意长度的消息并生成固定长度(256比特,即32字节)的哈希值。SM3生成的哈希值长度为256比特(32字节),不管输入消息的长度如何,输出始终是固定的。SM3将输入数据划分为512比特(64字节)的分组,并对每个分组进行处理。 阅读详情

相关推荐

解决银河麒麟V10分辨率问题:xrandr命令详解与常见错误排查

本文详细解析了在银河麒麟V10系统中使用xrandr命令调整屏幕分辨率的方法,包括核心功能解析、常见问题排查及持久化配置技巧。通过实战指南帮助用户解决分辨率缺失、配置失效等典型问题,提升多显示器环境下的工作效率。

weixin_30642561的博客 503

HDU-6363:bookshelf(数论+容斥)

bookshelf Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description Patrick Star bought a bookshelf, he named it ZYG !! Patrick Star has NNN book . Th...

Mitsuha_的博客 536

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 635

hdu 6363 bookshelf (容斥+欧拉降幂)

http://acm.hdu.edu.cn/showproblem.php?pid=6363 题意: 有  本一摸一样的书,有一个共有 层的书架,现在要把书都放到书架上。 放完后假设第 i层书架有 本书,则该层书架的稳固值为 。 定义整个书架的美观值为所有层书架的稳固值的 GCD 。 问现在随机放这些书,整个书架的美观值的期望值是多少。 思路: Part 1   一个放 x 本书...

Oops的博客 271

2025ICPC南昌邀请赛题解

2025ICPC南昌邀请赛由XDU和WHU联合出题的ICPC南昌邀请赛,榜单显示8题金、6题银、5题铜。

weixin_50089904的博客 1958

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位

本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。

rice5的博客 949

莫比乌斯反演—详解

介绍 1、莫比乌斯反演是组合数学中很重要的内容,可以用于解决很多组合数学的问题。 2、莫比乌斯反演是数论中的重要内容,在许多情况下能够简化运算。 3、是个个很神奇的东西。 引入 考虑以下求和函数 fn=∑d|ngdf_n=\sum_{d|n}g_d 那么根据定义我们可以知道 f1f_1=g1g_1 f2f_2=g1g_1+g2g_2 f3f_3=g1g_1+g3g_3

XianHaoMing的博客 9039

用Python+NumPy手把手实现分数阶傅里叶变换(FRFT),搞定线性调频信号分析

本文详细介绍了如何使用Python和NumPy实现分数阶傅里叶变换(FRFT),特别针对线性调频信号(Chirp信号)分析。通过从零开始的代码实现和可视化案例,展示了FRFT在时变信号处理中的强大能力,帮助工程师和研究人员高效分析频率随时间变化的信号。

weixin_29062823的博客 218

【数论】莫比乌斯函数/莫比乌斯反演

本篇介绍了莫比乌斯函数的定义、性质及证明、线性筛模板,莫比乌斯反演公式及证明,给出入门例子和实战题目及详解,适合莫比乌斯函数/莫比乌斯反演的入门学习。

Wmiracle的博客 4229

传感器应用案例:压力传感器在工业自动化中的应用_(13).压力传感器的数据采集与处理

数据采集系统(Data Acquisition System, DAS)是连接传感器和控制系统的重要桥梁。它包括硬件(如数据采集卡、信号调理器)和软件(如数据采集软件、数据处理算法)两部分。信号调理:将传感器输出的模拟信号转换为适合AD转换的信号。AD转换:将模拟信号转换为数字信号。数据传输:将数字信号传输到控制系统或上位机。存储:将采集的数据存储在本地或远程数据库中。实时性:保证数据的实时性和准确性。压力传感器的数据采集与处理是工业自动化中不可或缺的一部分。

2401_87715305的博客 1620

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 195

莫比乌斯反演

详细讲解莫比乌斯反演。

wanglianda2007的博客 1709

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1032

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

计算机控制技术及应用

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

B - 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 ! Now Patrick want to p...

天翼之城的博客 274

怀旧版电脑GBC模拟器

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

B - bookshelf HDU - 6363 莫比乌斯反演

bookshelf Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 598Accepted Submission(s): 273 Problem Description Patri...

人生如戏 284

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

hdu 6363 bookshelf(莫比乌斯反演)

题目:把N本书放到K层的书架上,每一层的美丽值为bi=2*fib[cnt]−1,其中cnt是这一层书的数量,fib[ ]为斐波那契数列,整个书架的美丽值为gcd(b1,b2,...,bk),问整个书架的美丽值的期望。 看了某大佬博客上详细的分析才补上的这个题,写的太好了。 #include&lt;bits/stdc++.h&gt; using namespace std; typedef l...

XFire的博客 298

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

数学题   我不会  我不会    莫比乌斯反演   啥玩意  嘤嘤嘤  题意:   把n本书放到k层的书架上,每一层的美丽值为bi=2^f[cnt]−1,其中cnt是这一层书的数量,f[x]为斐波那契数列,整个书架的美丽值为gcd(b1,b2,...,bk),问整个书架的美丽值的期望 思路:   什么数论结论  简单可得   我怎么什么都不知道  如何求f(g)    一开始的...

lkaicheng的博客 321

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

Description 将nnn本书等概率随机放在kkk层书架上,如果第iii层书架上有cnticnticnt_i本书,那么该层书架的稳定值为stablei=f[cnti]stablei=f[cnti]stable_i=f[cnt_i],其中f[0]=0,f[1]=1,f[i]=f[i−1]+f[i−2]f[0]=0,f[1]=1,f[i]=f[i−1]+f[i−2]f[0]=0,f[1]=1,...

ZSQ 363

HDU 6363 bookshelf (莫比乌斯反演+组合+斐波那契性质)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6363 #include&lt;bits/stdc++.h&gt; using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)&lt;(z);(x)++) #define ll lon...

满月照亮的路 254

2018 Multi-University Training Contest 6 1002 bookshelf(hdu 6363)(容斥 | 莫比乌斯反演)

题目链接:hdu 6363 bookshelf Sample Input 1 6 8 Sample Output 797202805 题意:n本书放到k层书架上,放完后,若某一层有x本书,则这一层的稳固值f(x),f是斐波那契数列,美观值为,整个书架的美观值为所有层的美观值的gcd,求书架美观值的期望值。 思路:太难了!直接贴题解 这个gcd的性质是数论中有的,不会证明,...

yz467796454的博客 248

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 容斥原理

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

hdu 6363 数论多种知识集合(欧拉降幂+莫比乌斯反演+约数枚举+组合数计算+快速幂+斐波那契+GCD加强版)

#include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const ll mod=1e9+7; const int maxn=2*1e6+5; const int maxm=1e6+5; ll fact[maxn],f[maxn],inv[maxn]; bool check[maxm]; int mu[ma...

fanbaobao829的博客 412

浅谈算法——莫比乌斯反演

前言 莫比乌斯反演(又称懵逼钨丝繁衍),那种让人看了就懵逼的东西(其实是我太菜了) 莫比乌斯反演在知道之后对解题十分有帮助,\(O(n)\)的柿子分分钟化成\(O(\sqrt n)\) 那么,什么是莫比乌斯反演呢? 莫比乌斯反演 1.莫比乌斯反演 如果说,有\(f(n)\)和\(g(n)\)是定义在正整数集合上的两个函数,并且满足 \[f(n)=\sum\limits_{d|n} g(d...

a5163273的博客 802

数论-莫比乌斯反演

1.这可能是数论里面比较难的一个地方,但是我觉得只要你认真把这篇博客读完,就会有新的认识。 2.首先,我是凭借这自己的理解写下了这篇博客,疏漏之处还请各位julao指出来。嗯,那么我要开始了。 3.说道莫比乌斯反演,我们就不得不说一个东西:狄利克雷卷积。什么叫做卷积?这是一个问题,其实卷积就是一种求和(个人观点)再概率论中,也有卷积公式。我觉得和这里的卷积是一个意思,只不过概率论中是积分,也就...

YG爱木木 4362
上一篇: CodeForces-1017E The Supersonic Rocket(凸包+KMP)
下一篇: HDU-6393 Traffic Network in Numazu(基环树/树剖+树状数组)
丿残念灬
博客等级 码龄11年 151粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值