【莫比乌斯反演】10.30破译密码

初涉的话先留坑吧

题目大意

$\sum_{i_1}^{a_1}\sum_{i_2}^{a_2}\cdots\sum_{i_m}^{a_m}(i_1,i_2,\cdots,i_m)$

$a_i<=1e6,2=<m<=10$

题目分析

首先寄存两篇比较好的博客:

1.铃悬的数学小讲堂——狄利克雷卷积与莫比乌斯反演

2.[学习笔记]莫比乌斯反演常见模型

 

这个问题可以推广至一类模型:$\sum_{i=1}^n\sum_{j=1}^mf[\gcd(i,j)]$.

该模型的推论是$原式=\sum_{u=1}^{\min(n,m)}\lfloor\frac{n}{u}\rfloor\lfloor\frac{m}{u}\rfloor\sum_{d|u}f[d]\mu(\frac{u}{d})$

注意到在本题中$f=id$,那么也就是说$原式=\sum_{u=1}^{\min(n,m)}\lfloor\frac{n}{u}\rfloor\lfloor\frac{m}{u}\rfloor \varphi(u)$.

因此先一遍线性筛求$\varphi$的前缀和,再数论分块做$\lfloor\frac{n}{u}\rfloor$这一部分。

 

本题对模型的转化还不算太深(算是比较裸的反演)

 1 #include<bits/stdc++.h>
 2 typedef long long ll;
 3 const int maxn = 13;
 4 const int MO = 1e9+7;
 5 const int TOP = 1000000;
 6 const int maxPri = 80035;
 7 const int maxNum = 1000035;
 8 
 9 int T,n,mn,a[maxn],pr[maxPri];
10 ll phi[maxNum],ans,tmp;
11 bool vis[maxNum];
12 
13 int read()
14 {
15     char ch = getchar();
16     int num = 0;
17     bool fl = 0;
18     for (; !isdigit(ch); ch=getchar())
19         if (ch=='-') fl = 1;
20     for (; isdigit(ch); ch=getchar())
21         num = (num<<1)+(num<<3)+ch-48;
22     if (fl) num = -num;
23     return num;
24 }
25 void init()
26 {
27     phi[1] = 1;
28     for (int i=2; i<=TOP; i++)
29     {
30         if (!vis[i]) pr[++pr[0]] = i, phi[i] = i-1;
31         for (int j=1; (j<=pr[0])&&(pr[j]*i<=TOP); j++)
32         {
33             vis[pr[j]*i] = 1, phi[pr[j]*i] = phi[i]*pr[j];
34             if (i%pr[j]==0) break;
35             phi[pr[j]*i] = phi[i]*(pr[j]-1);
36         }
37     }
38     for (int i=2; i<=TOP; i++) phi[i] = (phi[i]+phi[i-1])%MO;
39 }
40 int main()
41 {
42     freopen("gcd.in","r",stdin);
43     freopen("gcd.out","w",stdout);
44     T = read(), init();
45     while (T--)
46     {
47         n = read(), ans = 0, mn = 0x3f3f3f3f;
48         for (int i=1; i<=n; i++)
49             a[i] = read(), mn = mn>a[i]?a[i]:mn;
50         for (int i=1, j=0; i<=mn; i=j+1)
51         {
52             j = mn, tmp = 1;
53             for (int k=1; k<=n; k++) j = std::min(j, a[k]/(a[k]/i));
54             for (int k=1; k<=n; k++) tmp = tmp*(a[k]/i)%MO;
55             ans = (ans+(phi[j]-phi[i-1]+MO)*tmp%MO)%MO;
56         }
57         printf("%lld\n",ans);
58     }
59     return 0;
60 }

 

 

END

转载于:https://www.cnblogs.com/antiquality/p/9892267.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

演示:EIGRP非等价负载均衡(故障分析与解决篇)

演示&#xff1a;EIGRP非等价负载均衡的故障分析与排除故障背景&#xff1a;在如下图14.20所示的网络环境&#xff0c;工程师完成了环境中所有路由器的接口地址配置有EIGRP动态路由协议的启动&#xff0c;目前每台EIGRP路由器邻居关系正常&#xff0c;路由学习正常&#xff0c;…

STM32超声波模块测距串口输出/通用定时器中断并输出PWM控制舵机/系统定时器延时

参考&#xff1a;stm32 超声波模块 原理 实现测距 舵机使用 作者&#xff1a;点灯小哥 发布时间&#xff1a; 2021-03-10 19:37:16 网址&#xff1a;https://blog.csdn.net/weixin_46016743/article/details/114643703 目录效果展示超声波传感器原理超声波测距编程步骤代码编写…

js json转xml(可自定义属性,区分大小写)

直接上代码~ 在网上找了很多例子&#xff0c;大多数不适用&#xff0c;而且麻烦&#xff0c;自己进行了一些调整&#xff0c;完成了一个可以区分大小写的json转xml的小功能~ 功能实现js&#xff1a; function CreatXmlDoc(obj){this.tagNameobj.tagName;this.properties obj.p…

mysql安装主从配置_MySQL安装与主从配置

我是ssh远程 配置的&#xff1b;略微有些不同&#xff0c;大家自己斟酌。1.安装MySQLsudo yum install mysql mysql-server sudo chgrp -R mysql /var/我是ssh远程 配置的&#xff1b;略微有些不同&#xff0c;大家自己斟酌。1.安装MySQLsudo yum install mysql mysql-serversu…

STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置

摘自&#xff1a;STM32F103五分钟入门系列&#xff08;二&#xff09;GPIO的七大寄存器GPIOx_LCKR作用和配置 作者&#xff1a;自信且爱笑‘ 发布时间&#xff1a; 2021-05-01 12:08:32 网址&#xff1a;https://blog.csdn.net/Curnane0_0/article/details/116276876?spm1001.…

CTR点击率简介

点击率 简介 在搜索引擎(百度、谷歌)中输入关键词后进行搜索&#xff0c;然后按竞价等因素把相关的网页按顺序进行排列出来&#xff0c;然后用户会选择自己感兴趣的网站点击进去&#xff1b;把一个网站所有搜索出来的次数作为总次数&#xff0c;把用户点击并进入网站的次数占总…

算法第三章作业

算法第三章作业 1.对动态规划算法的理解 求解的方式有两种&#xff1a;①自顶向下的备忘录法 ②自底向上。 动态规划是运筹学中用于求解决策过程中的最优化数学方法。 动态规划最重要的是子问题的求解&#xff0c;在求解任一子问题时&#xff0c;列出各种可能的局部解&#xf…

python中的命名空间指什么_13.Python中的命名空间是什么

Python中的命名空间是什么&#xff1f;In Python&#xff0c;every name introduced has a place where it lives and can be hooked for.This is known as namespace. It is like a box where a variable name is mapped to the object placed.Whenever the variable is searc…

STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

参考&#xff1a;基于STM32-Oled&#xff08;IIC&#xff09;的使用 作者&#xff1a;奋斗的小殷 发布时间&#xff1a; 2021-05-07 13:09:26 网址&#xff1a;https://blog.csdn.net/boybs/article/details/116465668 目录IIC总线简介IIC协议简介IIC总线系统结构IIC总线物理层…

mysql语句笔记

1、mysql多重查询select * from a_table ORDER BY b,c asc limit 1, 10;(对表a_table中的字段b降序排列&#xff0c;得到的结果再按字段c降序排列&#xff0c;最后取前10条数据)转载于:https://blog.51cto.com/jemary/1303093

推送公司今日菜单内容到手机

此文已由作者张耕源授权网易云社区发布。欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验。自从公司的易信公众服务号有了查询今日菜单的功能&#xff0c;自己慢慢养成了每次去吃饭前查一 下各个窗口的菜谱&#xff0c;再决定去哪吃饭的习惯。不过这个功能使用的越…

Android开发中如何创建自定义对话框

背景&#xff1a; 无论是Android&#xff0c;还是其他什么平台&#xff0c;对话框的主要形式都是弹出&#xff0c;或者我们可以说是一个在当前活动中打开的提示&#xff0c;来执行一些操作或实现一些功能。 你可以用一个对话框来问用户以确认一个行动&#xff0c;向用户通告一个…

mysql创建新表失败_麻烦给我看一下为什么MySQL创建表格失败嘛

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼改为$conmysql_connect(localhost,root,);if(!$con)die(连接数据库失败);mysql_select_db(comment_db,$con);$mysql_sql"create table comment_tab(id mediumint unsigned NOT NULL auto_increment,nickname char(16) NOT NUL…

树莓派接入公网(花生壳)

参考&#xff1a;树莓派接入公网 作者&#xff1a;图触靓 发布时间&#xff1a; 2020-12-22 17:28:19 网址&#xff1a;https://blog.csdn.net/bhbhhyg/article/details/107994829 目录为什么要接入公网接入公网的方法&#xff08;花生壳&#xff09;1、下载工具huashenke2、安…

洛谷 题解 P2312 【解方程】

Problem P2312 【解方程】 >>> record 用时&#xff1a; 1166ms空间&#xff1a; 780KB(0.76MB)代码长度&#xff1a; 2.95KB提交记录&#xff1a; R9909587 >>>注&#xff1a; 使用了 o1 优化o2 优化o3 优化快读快输 >>>Solution 30 pts 枚举&…

python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...

1、示例代码1)一般情况s [1,2,3]t reversed(s)for i in t:print(i)# 输出: 3,2,12) 执行pop()s [1,2,3]t reversed(s)s.pop()for i in t:print(i)# 期望输出 : 2, 1# 实际什么都没输出:2、问题原因及示例代码返回的迭代器本质上需要知道最后一个索引的位置和列表的长度。如…

cant find module express

安装express成功&#xff0c;测试一个应用如下&#xff1a;但是&#xff0c;运行却报错&#xff0c;如下图&#xff1a;说是express找不到&#xff0c;不应该啊&#xff01;命令都能用啊&#xff01;表面的原因是因为我install express用的是-g。参考链接如下&#xff1a;http:…

Linux虚拟机sqlite数据库安装教程、命令实现sqlite

参考&#xff1a;Linux虚拟机sqlite数据库安装教程 作者&#xff1a;图触靓 发布时间&#xff1a; 2021-04-08 19:07:56 网址&#xff1a;https://blog.csdn.net/bhbhhyg/article/details/115528254 一、在官网下载压缩包到window里面 SQLite官网下载地址 如图我们下载sqlite-a…

SecureCRT 使用 rz命令提示waiting to receive.**B0100000023be50

SecureCRT 远程连接Linux服务器&#xff0c;使用 rz命令提示waiting to receive.**B0100000023be50&#xff0c;或者使用sz命令提示&#xff1a; **B0100000023be50 解决方法设置如下&#xff1a; 转载于:https://www.cnblogs.com/pandaly/p/9898173.html

C语言面试高频问题:自己代码实现字符串相关的常用API

参考&#xff1a;C语言面试高频问题&#xff1a;自己代码实现字符串相关的常用API 作者&#xff1a;图触靓 发布时间&#xff1a; 2020-08-08 13:31:33 网址&#xff1a;https://blog.csdn.net/bhbhhyg/article/details/107878102 目录1、实现get(char *)&#xff1b;从键盘获取…