hdu 6053 TrickGCD

FP7195升降压恒流驱动IC:从AC/DC 12~24V输入到稳定输出的高效电源设计实战 本文详细解析FP7195升降压恒流驱动IC的工作原理与应用实战。该芯片支持4.5V-32V宽输入范围,能自动切换升降压模式并保持输出恒定,特别适用于车载LED照明、工业电源等电压波动场景。通过实际案例分享PCB布局、元件选型及调试技巧,帮助工程师实现高效稳定的电源设计。 阅读详情

Problem

acm.hdu.edu.cn/showproblem.php?pid=6053

莫比乌斯反演介绍

莫比乌斯反演(by PoPoQQQ)
莫比乌斯反演入门
莫比乌斯反演

Reference

2017 Multi-University Training Contest 2 solutions BY 电子科技大学(1009题)
HDU 6053 TrickGCD (莫比乌斯函数)
解题报告:HDU_6053 TrickGCD 莫比乌斯反演

Meaning

给定一个序列 {An} ,要构造一个序列 {Bn} ,满足:

  • 1≤Bi≤Ai
  • gcd(B1,…,Bn)≥2

问构造的方案数。

Analysis

暴力的做法,就是枚举 gcd,每一个 gcd 产生的答案是 ∏ni=1Aigcd ,总的答案就是它们的求和,但要去重,可以用莫比乌斯反演。
…好吧其实现在并不太懂莫比乌斯反演…按官方题解,定义:
F(x):gcd 是 x 倍数的方案数;
我猜相应的就有:
f(x):gcd 是 x 的方案数;
于是:
F(x)=∑x|df(d)⇒f(x)=∑x|dμ(dx)F(d)
而 F(x)=∏ni=1Aix ,就可以做了。
按 dalao 的说法,因为枚举 gcd 时是从 2 开始的,f(1) 没有用到,所以在乘 μ(i) 的时候,要多乘一个 -1,于是就有了第二个参考博客的反演式。
在处理那个连乘式的时候,要用一点优化处理。
好吧还是很迷…

Code

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100000, A = N, MOD = 1000000007;

int a[N], sum[N<<1|1];
int prime[A+1];
int mu[A+1];

void Mobius()
{
    mu[1] = 1;
    memset(prime, -1, sizeof prime);
    for(int i = 2, top = 0; i <= A; ++i)
    {
        if(prime[i])
        {
            prime[top++] = i;
            mu[i] = -1;
        }
        for(int j = 0; j < top && i * prime[j] <= A; ++j)
        {
            prime[i * prime[j]] = 0;
            if(i % prime[j])
                mu[i * prime[j]] = -mu[i];
            else
            {
                mu[i * prime[j]] = 0;
                break;
            }
        }
    }
}

int fast_pow(long long a, int b)
{
    long long x = 1;
    for( ; b; b >>= 1, a = a * a % MOD)
        if(b & 1)
            x = x * a % MOD;
    return x % MOD;
}

int main()
{
    Mobius();
    int T;
    scanf("%d", &T);
    for(int kase = 1; kase <= T; ++kase)
    {
        int n, small = A, big = 0;
        scanf("%d", &n);
        memset(sum, 0, sizeof sum);
        for(int i = 0; i < n; ++i)
        {
            scanf("%d", a+i);
            ++sum[a[i]];
            small = min(small, a[i]);
            big = max(big, a[i]);
        }
        for(int i = 1; i <= big << 1; ++i)
            sum[i] += sum[i-1];
        long long ans = 0, tmp;
        for(int d = 2; d <= small; ++d)
            if(tmp = -mu[d]) // mu[d] != 0
            {
                for(int i = d; i <= big; i += d)
                    tmp = tmp * fast_pow(i/d, sum[i+d-1]-sum[i-1]) % MOD;
                ans = (ans + tmp + MOD) % MOD;
            }
        printf("Case #%d: %I64d\n", kase, ans);
    }
    return 0;
}
深度学习在传感器数据分析中的创新应用 传感器是物理世界与数字世界的“接口”,其生成的高维、时序、多源数据蕴含着设备状态、环境变化、用户行为等关键信息。传统传感器数据分析依赖手工特征工程与简单机器学习模型,难以应对复杂场景下的非线性、长程依赖与实时性需求。深度学习通过自动特征提取非线性建模与端到端学习,成为传感器数据处理的革命性工具。本文从概念基础理论框架架构设计实现机制到实际应用,系统拆解深度学习与传感器数据的融合逻辑,结合工业预测维护医疗健康监测智能交通等场景,揭示其技术边界与未来演化方向。 阅读详情

相关推荐

别再死磕AUTOSAR文档了!手把手教你用ISOLAR-A配置BswM模块(附实战流程图)

本文通过Vector ISOLAR-A工具实战演示AUTOSAR BswM模块的配置流程,帮助工程师快速掌握基础软件模式管理。从环境准备到模式仲裁规则配置,再到动作列表实现,详细讲解每个步骤,并提供常见问题排查和高级优化技巧,大幅提升开发效率。

weixin_42542669的博客 250

TrickGCD

多校 HDU 6053

傻的让人心疼 352

FunASR语音识别服务在Win11上的Docker部署避坑指南:模型配置与热词优化

本文详细介绍了在Windows 11系统上通过Docker部署FunASR语音识别服务的完整流程,包括环境准备、模型配置、热词优化及常见问题解决方案。特别针对Win11环境下的特殊配置和性能调优提供了实用指南,帮助开发者高效搭建高性能语音识别服务。

e3f4g5的博客 222

TrickGCD (对于枚举gcd的另一种处理方法)

原题:hdu 6053 题意: 给出每个位置的上限,求所有数gcd大于等于2的方案数、 解析: 首先,这种题目一定是枚举每个gcd开局的,然后是上限的处理。 假设gcd=10,那么10~19对于ans的贡献都是1,20~29对ans的贡献都是2,所以我们可以用前缀和记录一下某个上限区间内的数的个数,再枚举x的情况得出gcd=kx的方案数,最后反向容斥得出gcd=x的方案数 gcd...

QAQ 715

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3493

深入理解 Terraform 中的资源更新与管理

摘要:本文探讨Terraform处理AWS安全组名称变更时的行为。当修改不可变属性(如安全组名称)时,Terraform会创建新资源并删除旧资源。通过状态文件比对所需状态与实际状态,Terraform对不可变属性采用"先创建后删除"策略,对可变属性则直接更新。实例演示了修改安全组名称和关联EC2实例时的处理过程,强调理解资源属性可变性对基础设施管理的重要性。(149字)

2501_90323865的博客 473

TrickGCD(HDU 6053 莫比乌斯函数的反演)

TrickGCD Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 2492    Accepted Submission(s): 958 Problem Description You are give

残阳止水 532

【即插即用模块】Transformer篇 | TCSVT 2025 | DAFM:双注意力聚合+反向跨模态筛选,特征精准捕捉并融合!

本文提出了一种双模态注意力融合模块(DAFM),用于增强多模态图像融合任务中的特征交互。该模块通过双注意力聚合机制,结合自注意力与跨模态注意力,有效提升特征融合效果。DAFM采用可学习平衡因子动态调整注意力权重,并运用深度卷积降低计算复杂度。实验结果表明,该模块能显著提升多模态图像融合质量,适用于RGB-红外等双模态视觉任务。模块代码实现简洁,可直接集成到现有网络中作为特征融合层使用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 177

HDU 6053 TrickGCD (莫比乌斯函数)

Description You are given an array AA , and Zhu wants to know there are how many different array BB satisfy the following conditions? 1≤Bi≤Ai1≤B_i≤A_i For each pair(l,r) (1≤l≤r≤n)(1≤l≤r≤n)

小坏蛋_千千 1235

166、Sim2Real中的强化学习:域随机化与鲁棒策略

第二,训练时监控每个随机化维度对策略梯度的贡献,如果某个维度对loss的方差贡献极小,说明策略已经忽略它了,要么加大范围,要么删掉。第四,如果条件允许,用真实数据来校准随机化分布——采集真机上的传感器数据,拟合出参数分布,再把这个分布作为随机化的采样依据,这比拍脑袋定范围靠谱得多。动态随机化是很多人忽略的维度。域随机化的核心思想说白了就一句话:别去精确建模现实,而是把仿真环境本身变成一个随机分布的集合,让策略在“各种乱七八糟的物理参数”里都见过世面,这样到了真机上,不管现实落在哪个参数区间,策略都能兜住。

sundong_81的博客 27

【Word提效 No.010】使用AI一键复制格式刷应用格式

本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。

u011186532的专栏 78

解题报告:HDU_6053 TrickGCD 莫比乌斯反演

题目链接 题意: 给一个长度为n的数组A,让你构造等长的数组B,B数组中的元素取值为小于等于A数组中对应位置的元素,现在询问B数组中的gcd大于等于2的方案数 思路: 很容易推出反演式: 转换一下 f ( i , d ) 为 [  a / d ] = i 的A数组中的元素个数,用一个前缀和数组维护就好 那么复杂度就降到了O( n log(n)) 了 代码

Hee的博客~ 2430

仿真学习系列(四十七):Sigrity仿真之直流压降与电流密度

在现代电子设计中,电源网络的设计和分析对于保证电路的稳定性至关重要。直流压降(IR-Drop)和电流密度是评估电源网络性能的关键参数,尤其是在高频和高速电路中。它们直接影响到设备的工作稳定性与效率。通过Sigrity的仿真工具,可以深入分析和优化这些电源特性,从而确保系统的可靠性。 本节将介绍直流压降和电流密度的基本概念,以及如何在Sigrity中使用PowerDC模块进行相关仿真。

案例文章,高速信号 515

HDU 6053 TrickGCD

HDU 6053 TrickGCD原题连接: http://acm.hdu.edu.cn/showproblem.php?pid=6053 (对于不了解,莫比乌斯反演的同学不需要纠结。直接用结论就好了)莫比乌斯反演公式若对于 定义域 为正整数,值域为复数子集 的函数ff:定义它的和函数F(n)=∑d|nf(d)=∑d|nf(nd)F(n)=\sum_{d|n}f(d)=\sum_{d|n}f(\

ZLH_HHHH的博客 1185

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TrickGCD HDU - 6053 [Mobius]

TrickGCD HDU - 6053  题意: 求存在多少个数组b,使得b[i]&gt;=a[i] &amp;&amp; gcd(b[1]...b[n])&gt;=2 思路: 求出所有gcd是1倍数的方案数x 求出所有gcd是1的方案数y ans=x-y 经过系列化简,得到  明显的Mobius但是常规做法是O*(n^2), 第二个等号后面的式子,我们可以在 O(n*sqrt(n)...

Haipai1998的博客 317

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HDU6053 TrickGCD

链接:http://acm.hdu.edu.cn/showproblem.php?pid=6053 定义g(d)为gcd(i,j)%d==0的数量,对于一个位置a[x]有a[x]/d(向下取整)种,那么g(d)=∏(a[x]/d)\prod(a[x]/d)∏(a[x]/d),d的范围是[2,min(a)] 而最后的答案应该是g(2)+g(3)+0g(4)+g(5)-g(6)+g(7)+0g(8)+...

冰柠橙的博客 224

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[HDU]6053 TrickGCD

TrickGCDURL: http://acm.hdu.edu.cn/showproblem.php?pid=6053You are given an array A , and Zhu wants to know there are how many different array B satisfy the following conditions? 1≤Bi≤Ai For each pair(

chutzpah 442

HDU6053 TrickGCD

题目连接题意​ 给定一个长为n的数组A,求解一定条件下能构造多少个不同数组B。条件为 1≤Bi≤Ai1\leq B_i \leq A_i 和 对于任意的 l,r(1≤l≤r≤n)l,r (1\leq l \leq r \leq n) ,gcd(Bl,Bl+1,...,Br)≥2gcd(B_l,B_{l+1},...,B_r) \geq 2.分析​ 显然gcd最小的情况必然是在l=1,r=nl

dDarkdawn的博客 434

HDU 6053 TrickGCD 莫比乌斯反演||筛法

传送门:HDU6053 题意:给定一个序列Ai,构造一个序列Bi,满足Bi=2.  问有多少种Bi序列 正解:比赛的时候有点容斥的思路,但是感觉容斥太麻烦了,就换了题去搞,完全忘了莫比乌斯反演。。 显然我们要枚举gcd,然后对于每个gcd求所有(Ai/gcd)的乘积,最后再加起来,但是这个过程会有重复的, 需要容斥,用莫比乌斯函数即可,好像也有用类似于筛法一样的容斥也能过。

WA是一笔财富 793

【筛法+容斥】HDU - 6053 - TrickGCD

题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6053> 题意: 有一个长度为N的数组a,问数组b有多少种情况,满足 1<=N,a[i]<=1e5 题解: 第二个条件其实就是,如果所有数字的gcd都大于等于2,那部分的也肯定大于等于2。 假设,则。设为的方案数,则。这样我们就可以枚举来进行容斥的运算,而且我们...

Eliot的博客 233

HDU 6053 TrickGCD 数论

TrickGCD Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 2532    Accepted Submission(s): 965 Problem Description You are given an

black_miracle的博客 377

HDU-6053 TrickGCD

TrickGCD Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 549    Accepted Submission(s): 211 Problem Description You are given an

樱花满地集于我心,楪舞纷飞祈愿相随 708

hdu 6053 TrickGCD [莫比乌斯函数]

HDU 6053 TrickGCD [莫比乌斯函数]

ACTerminate的博客 2880

HDU 6053 - TrickGCD | 2017 Multi-University Training Contest 2

/* HDU 6053 - TrickGCD [ 莫比乌斯函数,筛法分块 ] | 2017 Multi-University Training Contest 2 题意: 给出数列 A[N],问满足: 1 <= B[i] <= A[i] ; 对任意(l, r) (1<=l<=r<=n) ,使得 gcd(bl,...br) >= 2 ; ...

weixin_33949359的博客 122

TrickGCD hdu6053

TrickGCD Problem Description You are given an array A , and Zhu wants to know there are how many different array B satisfy the following conditions? * 1≤Bi≤Ai * For each pair( l , r )

Grady_Ne的博客 439

HDU6053-TrickGCD

TrickGCD                                                                       Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

wang_128的博客 636
上一篇: gym 101170 NWERC 2016 A Arranging Hat
下一篇: codeforces 834 C The Meaningless Game
HackerTom
博客等级 码龄11年 719粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值