P3704数字表格(莫比乌斯反演)

news2025/1/17 2:57:06

 

题目背景

Doris 刚刚学习了 fibonacci 数列。用 fi​ 表示数列的第 i 项,那么

0=0,1=1f0​=0,f1​=1

fn​=fn−1​+fn−2​,n≥2

题目描述

Doris 用老师的超级计算机生成了一个 n×m 的表格,

第 i 行第 j 列的格子中的数是 gcd(i,j)​,其中gcd(i,j) 表示 i,j 的最大公约数。

Doris 的表格中共有 n×m 个数,她想知道这些数的乘积是多少。

答案对 109+7 取模。

输入格式

本题单个测试点内有多组测试数据

输入的第一行是一个整数 T,表示测试数据的组数。

接下来 T 行,每行两个整数 n,m,表示一组数据。

输出格式

对于每组数据,输出一行一个整数表示答案。

输入输出样例

输入 #1复制

3
2 3
4 5
6 7

输出 #1复制

1
6
960

思路:

代码:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const double eps = 1e-8;
const int N = 1e6+10;
const long long  mod =1e9+7;
#define LL long long 
int pre[N],st[N];
int n,cn,m;
LL mu[N],ff[N],gg[N],F[N];
LL g(int l, int k)
{
    return (LL)k / (k / l);
}
LL quick(LL x, LL y,LL mod)
{
    LL ans = 1;
    while (y)
    {
        if (y & 1)
            ans = ans * x % mod;
        y = y >> 1;
        x = x * x % mod;
    }
    return ans;
}
void into()
{
    mu[1] = 1;
    for (int i = 2; i < N; i++)
    {
        if (!st[i]) pre[++cn] = i, mu[i] = -1;
        for (int j = 1; pre[j] * i < N && j <= cn; j++)
        {
            st[pre[j] * i] = 1;
            if (i % pre[j] == 0) break;
            mu[i * pre[j]] = -mu[i];
        }
    }
       F[0]=F[1]=gg[1]=ff[1] = 1;
        for (int i = 2; i < N; i++)
        {
            ff[i] = (ff[i - 2] + ff[i - 1]) % mod;
            gg[i] = quick(ff[i], mod - 2,mod);
            F[i] = 1;
        }
            for(int i=1;i<N;i++)
           for (int j = i; j < N; j += i)
           {
               if (mu[j/i] == 1)
               {
                   F[j] = (LL)F[j] * ff[i] % mod;
               }
               else if (mu[j/i] == -1)
               {
                   F[j] = (LL)F[j] * gg[i] % mod;
               }
           }
       for (int i = 1; i < N; i++)
           F[i] = (LL)F[i] * F[i - 1] % mod;
}
int main()
{
    into();
    int T;
    cin >> T;
    while (T--)
    {
        cin >> n >> m;
        if (n > m)swap(n, m);
        LL ans = 1;
        for (int l = 1, r; l <= n; l = r + 1)
        {
            r = min(n, (int)min(g(l, n), g(l, m)));
            LL s = (LL)F[r] * quick(F[l - 1], mod - 2, mod) % mod;
            ans = (LL)ans * quick(s, (LL)(n / l) * (m / l) % (mod - 1),mod) % mod;
        }
        cout << (ans % mod + mod) % mod << endl;
    }
  
    return 0;

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

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

相关文章

企业数据治理的三个阶段:从起步到成熟的数据管理之旅

随着数字化时代的到来&#xff0c;企业数据已经成为企业的重要资产和驱动业务发展的重要力量。然而&#xff0c;要想充分利用数据的价值&#xff0c;企业需要对其数据进行有效的管理和治理。本文将对企业数据治理的三个阶段进行详细的探讨&#xff0c;以帮助企业了解其在数据治…

5600U PVE安装WIN10后直通核显

修改PVE系统配置 请先安装相同版本的PVE系统&#xff0c;其他版本如果存在问题请自行查找。 安装过程比较简单&#xff0c;具体方法请自行百度 1. 修改grub启动参数&#xff1a; 修改文件 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 配置&#xff1a; GRUB_CMDLINE_LI…

七款人体感应报警器电路图

人体感应报警器电路图&#xff08;一&#xff09; 人体发出的红外线波长在9&#xff5e;10um之间&#xff0c;属远红外线区。我们利用热释电红外传感器及信号处理集成电路&#xff0c;组装成一个人体红外线感应开关电路报警器&#xff0c;它能依靠人体发出的微量红外线进行开关…

一键减低PNG像素,轻松优化图片质量!

在数字时代&#xff0c;我们每天都要处理大量的图片文件&#xff0c;从网站设计、广告素材到社交媒体图片等。PNG作为一种常用的无损压缩格式&#xff0c;在保证图片质量的同时&#xff0c;也占用了较大的存储空间。为了优化存储空间和提高加载速度&#xff0c;我们需要对PNG图…

获取小红书笔记详情API调用说明(含请求示例参数说明)

前言 小红书&#xff0c;是一个引领全球时尚潮流的社交电商平台。在这里&#xff0c;你可以发现世界各地的优质好物&#xff0c;从美妆护肤、穿搭时尚&#xff0c;到家居生活、旅行美食&#xff0c;一切应有尽有。同时&#xff0c;这里也是一个分享生活点滴的平台&#xff0c;…

CPU平台做视频智能分析,Lnton视频分析平台不仅支持流分析,同时也支持图片分析了

LntonAIServer最新v1.0.09版本支持图片分析了&#xff0c;经过几个月的研发&#xff0c;在原有的视频流分析的基础上&#xff0c;我们终于支持大家都非常期待的图片分析功能了&#xff0c;图片分析的功能加上&#xff0c;能有利于很多场景的展开&#xff0c;比如在烟火、明厨亮…

蓝牙技术在智能交通系统中的革新与应用

随着科技的不断进步&#xff0c;蓝牙技术已经成为智能交通系统中的一项关键技术。其无线连接和低功耗的特性为交通管理和车辆通信提供了新的解决方案。本文将深入探讨蓝牙技术在智能交通系统中的应用&#xff0c;以及其对交通效率、安全性和用户体验的积极影响。 1. 蓝牙技术在…

5G工业物联网网关:连接未来的智能工业

在当今数字化时代&#xff0c;工业物联网正迅速崛起&#xff0c;并引领着全球工业的数字转型。而5G工业物联网网关作为实现IIoT的关键基础设施&#xff0c;在连接未来的智能工业中发挥着举足轻重的作用。 什么是5G工业物联网网关 5G工业物联网网关是连接工业设备和5G网络的关键…

“晨曦记账本:筛选特定时间段内的借款信息,管理更轻松!“

晨曦记账本&#xff0c;为您的财务记录带来前所未有的便捷&#xff01;现在&#xff0c;我们推出了一项新功能&#xff0c;让您能够轻松筛选特定时间段内的借款信息。这不仅让您更轻松地管理借款记录&#xff0c;还能确保您的财务数据一目了然。 首先&#xff0c;我们要打开晨…

YOLOv8独家原创改进:新颖的Shape IoU结合 Inner-IoU,基于辅助边框的IoU损失的同时关注边界框本身的形状和尺度,小目标实现高效涨点

💡💡💡本文改进:一种新的Shape IoU方法结合 Inner-IoU,基于辅助边框的IoU损失的同时,更加关注边界框本身的形状和尺度来计算损失 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/ca…

2024年您应该知道的 12个绝佳且免费的 AI 工具

2024年&#xff0c;人工智能的世界会继续让我们着迷。 这里收集了12 个免费的 AI 工具&#xff0c;其中大多数易于使用&#xff0c;还有一些复杂的。无论如何&#xff0c;AI 将会给我们的工作和生活带来巨大的改变&#xff0c;了解并掌握最适合自己的工作至关重要。 1、Adobe …

MySQL的CRUD操作函数介绍union和union all

目录 一. CRUD&#xff08;增删改查&#xff09; 1.1 SELECT&#xff08;查询&#xff09; 概念 语法 含义 1.2 INSERT&#xff08;新增&#xff09; 概念 语法 含义 1.3 UPDATE&#xff08;修改&#xff09; 语法 含义 1.4 DELETE&#xff08;删除&#xff09; 语…

Kotlin:Set其实是有插入的顺序?

MutableSet怎么能调用indexOf去获取它的插入顺序呢&#xff1f;参考官网Collections overview | Kotlin Documentationhttps://kotlinlang.org/docs/collections-overview.html#set翻不了墙的看下面 &#xff08;MutableSet的默认实现是LinkedHashSet&#xff0c;LinkedHashSet…

接口自动化技巧

使用postman发送上传接口方法&#xff1a; pytest运行完很多warning信息&#xff0c;如何去掉&#xff1f; 接口自动化异常处理方法&#xff1a; pytest去掉warning提示 可以再pytest,ini文件设置过滤掉告警信息

静态网页设计——奥迪官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 使用技术&#xff1a;HTMLCSSJS 主要内容&#xff1a;①网站栏目设计说明。 网站为奥迪官网&#xff0c;由奥迪首页、奥迪车型&#xff08;具体车型介绍&#xff09;、…

8K超高清应用:输电线网智慧巡检提升巡视效率

电力安全关系国计民生&#xff0c;是国家安全的重要保障&#xff0c;因此确保电力线路系统的安全运行至关重要。电力线路系统整体分为三大板块&#xff1a;输电线路、变电站和配电线路。然而&#xff0c;由于自然灾害、人为破坏等因素影响&#xff0c;这三大板块的设备很容易发…

BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【3】

这是本系列文章中的第3弹,请确保你已经读过并了解之前文章所讲的内容,因为对于已经解释过的概念或API,本文不会再赘述。 本文要利用BERT实现一个“垃圾邮件分类”的任务,这也是NLP中一个很常见的任务:Text Classification。我们的实验环境仍然是Python3+Tensorflow/Keras…

ubuntu 安装 anaconda

ubuntu 安装 anaconda 下载 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh安装 bash Anaconda3-2023.09-0-Linux-x86_64.sh2.1 回车继续 2.2 许可协议 输入 q 退出阅读许可协议 2.3 输入 yes 接受 许可协议 2.4 设置 anaconda 安装位置 如不需…

kubernetes(二)创建集群

kubernetes&#xff08;一&#xff09;概述与架构 云原生实战 语雀 官网 Kubernetes 文档 | Kubernetes 更新&#xff1a;移除 Dockershim 的常见问题 | Kubernetes B站课程&#xff1a;https://www.bilibili.com/video/BV13Q4y1C7hS/?p26 安装版本说明&#xff1a; 视频教程…

【驱动序列】C#获取电脑硬件基本组合以及基础信息

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读《小5讲堂之知识点实践序列》文章。 这是2024年第7篇文章&#xff0c;此篇文章是C#知识点实践序列文章&#xff0c;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 要开发一款驱动小助手&…