2017多校第二场 HDU 6053 TrickGCD 莫比乌斯反演

告别Godot默认编辑器:手把手教你用VSCode配置C#开发环境(附中文注释避坑指南) 本文详细介绍了如何将VSCode配置为Godot引擎的C#开发环境,提升游戏开发效率。从环境准备、扩展配置到解决中文编码问题,提供完整的避坑指南和高级调试技巧,帮助开发者充分利用VSCode的智能补全和调试功能,打造高效工作流。 阅读详情

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 ) (1≤l≤r≤n) , gcd(bl,bl+1…br)≥2

Input
The first line is an integer T(1≤T≤10) describe the number of test cases.

Each test case begins with an integer number n describe the size of array A.

Then a line contains n numbers describe each element of A

You can assume that 1≤n,Ai≤105

Output
For the kth test case , first output “Case #k: ” , then output an integer as answer in a single line . because the answer may be large , so you are only need to output answer mod 109+7

Sample Input

1
4
4 4 4 4

Sample Output

Case #1: 17

题意:给出长度为n的A数列,求满足条件的B数组的个数,条件:①1<=b[i]<=a[i] ②对于任意区间【L,R】,区间gcd>=2
解法:除了上一篇文章的容斥求法,还有可以直接利用Mobius来求。对于某个数及其倍数能产生的B数组方案个数为:

这里写图片描述

但其中会产生重复的数列,这时候我们需要判断x的质因子数的奇偶性,若为奇数则加上该方案数,否则减去该方案数(容斥原理)可以用莫比乌斯函数判断当前枚举的GCD对答案的贡献。

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 1e5+7;
const int huyu = 1e9+7;
LL mu[maxn], num[2*maxn], ks = 0;
void Mobius(LL n){
    mu[1] = 1;
    for(LL i=1; i<=n; i++){
        for(LL j=i+i; j<=n; j+=i){
            mu[j]-=mu[i];
        }
    }
}
LL qsm(LL b, LL n){
    LL ret = 1;
    while(n){
        if(n&1) ret = ret*b%huyu;
        b=b*b%huyu;
        n>>=1;
    }
    return ret;
}

int main()
{
    Mobius(100000);
    int T,n;
    scanf("%d", &T);
    while(T--)
    {
        memset(num, 0, sizeof(num));
        scanf("%d", &n);
        int mi = 1e9;
        for(int i=1; i<=n; i++){
            int x;
            scanf("%d", &x);
            mi = min(mi, x);
            num[x]++;
        }
        for(int i=1; i<=200000; i++){
            num[i]+=num[i-1];
        }
        LL sum = 0;
        for(LL i=2; i<=mi; i++){
            LL f = 1;
            for(LL j=1; j*i<=100000; j++){
                f = (f*qsm(1LL*j, num[(j+1)*i-1]-num[j*i-1]))%huyu;
            }
            sum = ((sum - f * mu[i]% huyu) + huyu) %huyu;
        }
        printf("Case #%d: ", ++ks);
        printf("%lld\n",sum);
    }
    return 0;
}
ubuntu安装hodoop详细步骤 进入到Ubuntu系统中打开桌面,点击鼠标右键打开终端,在终端中输入如下命令这样就可以创建一名为hadoop的新用户。给用户输设置密码输入,输入如下命令,设置密码,按提示输入两次然后为hadoop用户增加管理员全新,这样就可以方便部署完成之后输入重启命令,重启一下Ubuntu系统,然后登录到我们创建的hadoop用户上面reboot。 阅读详情

相关推荐

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2995

2017多校训练赛第二场 HDU 6053 TrickGCD(容斥原理/莫比乌斯反演)

最后五分钟A了这题……惊天地泣鬼神啊……一波三折,真是刺激!         最初的想法,由于gcd是大于2的,然后gcd肯定只和质数有关,所以直接枚举,以每一个质数作为gcd,然后分别求出每个质数作为gcd的方案数加起来即可,然后对于每一位,用a[i]/gcd,就可以得到该位置的可选方案数,然后每位乘起来即可。可是事实并没有那么简单,很容易发现,计算完质数2、3的方案数后,所有6的倍数的方案都被重复计算了一次,类似的重复还有很多。怎么解决这个问题呢?

alpc_qleonardo 1135

基于51单片机语音识别智能台灯设计

智能台灯;语音识别;STC89C52RC单片机

Benso_H的博客 5843

2017多校-2

这次就写出来第一题,还是很菜啊。 1001.Is Derek lying? http://acm.hdu.edu.cn/showproblem.php?pid=6045 思路:总题数为n,s是两人答案一样的个数,那么他们的的总得分一定不大于n+s,他们得分差一定不大于n-s。#include <iostream> #include <cstdio> #include <cmath>using

博客 491

程序员实战:DINOv3 权重文件下载与本地化部署全流程指南

Meta开源的DINOv3视觉大模型凭借70亿参数和17亿图像训练,在语义分割、目标检测等任务表现优异。本文详解预训练权重的获取渠道、校验方法和加载实践。开发者可通过HuggingFace或GitHub获取不同版本权重,包括针对服务器端的ViT系列和边缘设备的ConvNeXt系列。文章提供MD5校验代码确保文件完整性,并给出PyTorch和Transformers两种加载方式。特别强调7B模型需16GB GPU内存,建议根据硬件条件选择合适版本,如边缘设备使用ConvNeXt-Tiny。最后指出DINOv3

xiugou3365的博客 5909

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 454

2017年多校联合训练 第二场(成电)

Link 官方题解1001 Is Derek lying? 题目链接 hdoj6045 用same表示两个字符串对应位置相同的个数,用diff表示两个字符串对应位置不同的个数,易得same+diff=N 稍加分析易知: -diff<=X-Y<=diff 0<=X+Y<=2*same+diff(=2*n-diff)#include<bits/stdc++.h> using namespac

qyq 570

CentOS 7下Multipath多路径存储的实战配置与性能优化

本文详细介绍了在CentOS 7系统中配置与优化Multipath多路径存储的完整实战流程。从安装部署、核心配置文件解读,到性能调优与生产环境避坑指南,全面解析如何利用Device Mapper Multipath构建高可用、负载均衡的存储链路,提升存储系统可靠性与I/O性能。

weixin_29278805的博客 320

HDU 6053 TrickGCD

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

长路漫漫 唯剑作伴 423

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

webrtc进阶-- FlexFEC 实现原理与调试分析(m80 代码对齐版)

WebRTC 中 FlexFEC 技术解析与调试指南 摘要:本文深入分析 WebRTC 的 FlexFEC(灵活前向纠错)技术实现原理,重点探讨其在 m80 版本中的协商机制、接收侧恢复流程以及 SFU 场景下的特殊处理。文章指出 FlexFEC 通过动态冗余策略提升弱网抗丢包能力,详细解析了编解码器分配、SSRC 映射、包恢复等关键环节,并提供了针对 XR+SFU 场景的调试建议。调试时可重点关注 FEC 包接收与媒体包恢复日志,以验证链路有效性。

HOSTEN的博客 49

HDU6053 TrickGCD(2017多校第2场)

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

Jelly_acm的博客 666

pscad IEEE标准系统搭建说明

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

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

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

WA是一笔财富 793

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

【数论】莫比乌斯反演证明+HDU6053(莫比乌斯函数)

预备知识: a|n表示a是n的一个因子a|n表示a是n的一个因子 μ(d)为莫比乌斯函数\mu(d)为莫比乌斯函数 若d=1d = 1,则μ(d)=1\mu(d) = 1; 若d=p1p2p3⋯pkd = p_1p_2 p_3 \cdots p_k,pip_i为互异素数,则有μ(d)=(−1)k\mu(d) = (-1)^k; 其他情况下μ(d)=0\mu(d) = 0;算法内容:已知:F(N)=

m674019130的博客 574

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU 6053 TrickGCD(莫比乌斯反演+分块)

题目链接TrickGCD分析题意其实很简单,反过来其实只要求得 gcd(bi)=1gcd(bi)=1 的个数,然后再用总的组合数减去就行了而对于求 gcd(bi)=1,bi<=Aigcd(b_i)=1,b_i <=A_i 由mobius公式 ∑x=1min{Ai}μ(x)∏i=1nfloor(Ai/x) \sum_{x =1}^{min\{A_i\}} \mu(x)\prod_{i=1}^nflo

taotao 的大学墓志 1216

【HDU 6053 TrickGCD】 + 莫比乌斯反演

TrickGCDTime Limit: 5000/2500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1002 Accepted Submission(s): 389Problem Description You are given an array A , an

楚江枫 542

2017多校联合第二场 1009题 hdu 6053 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 ,

kkkkahlua的博客 898

HDU 6053 TrickGCD(莫比乌斯反演)

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 ) (1≤l≤r≤n

Expecto__Patronum的博客 414

2017杭电多校联赛第二场-TrickGCD (hdu6053)莫比乌斯容斥

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

wangheng 380

【数论-莫比乌斯】hdu 6053 TrickGCD

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

Hi_jiaxinwei的博客 229

hdu 6053 TrickGCD (莫比乌斯反演)

题目链接:哆啦A梦传送门 题意:给出长度为n的序列a,找出长度也为n的序列b, 满足bi≤ai,gcd(b1,b2,...,bn)≥2b_i\leq a_i,gcd(b_1,b_2,...,b_n)\geq 2bi​≤ai​,gcd(b1​,b2​,...,bn​)≥2,问:有多少种不同的序列b? 题解: 我们先设: f(d)f(d)f(d)为满足gcd(b1,b2,...,bn)=dgcd(b_...

Jiandong 285

HDU 6053 TrickGCD (桶装+分段 / 莫比乌斯反演)

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

K键盘里的青春K 1284

Hdu-6053 TrickGCD(莫比乌斯函数)

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   1 ≤Bi≤Ai  * For each pair( l , r ) (1≤l≤r≤n   ) , gcd(bl

WZJRJ28 829

hdu 6053 TrickGCD (莫比乌斯)

题意:给你一个序列a,求序列b满足 ①1<=bi<=ai ②对于序列b[l,r] gcd(bl,...,br)>=2的序列数是多少 思路:显然这道需要我们枚举gcd 设F(d)是序列b满足gcd是d的倍数的个数 F(d)的结果显而易见为∏a[i]/d 根据容斥原理ans=F(2)+F(3)+F(5)-F...

153

TrickGCD HDU-6053 莫比乌斯反演 容斥

TrickGCD solution F(n)表示[gcd==kn]的个数,k属于Z+,F(n)表示[gcd==kn]的个数,k属于Z_+,F(n)表示[gcd==kn]的个数,k属于Z+​, f(n)表示[gcd==n]的个数.f(n)表示[gcd ==n]的个数.f(n)表示[gcd==n]的个数. F(n)=∏i=1nainF(n)=\prod\limits_{i=1}^{n}\frac{a_i}{n}F(n)=i=1∏n​nai​​ F(n)=∑n∣df(d)=>f(n)=∑n∣dμ(dn)F

qq_46173805的博客 234

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

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

Hee的博客~ 2430
上一篇: 2017多校第二场 HDU 6047 Maximum Sequence 线段树或者multiset维护区间最值
下一篇: 2017多校第二场 HDU 6050 Funny Function 推公式
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值