[蓝桥杯 2018 国 B] 矩阵求和

news2024/11/29 7:41:44

题目描述

经过重重笔试面试的考验,小明成功进入 Macrohard 公司工作。

今天小明的任务是填满这么一张表:

表有 n 行 n 列,行和列的编号都从 1 算起。

其中第 ii 行第 jj 个元素的值是 gcd(i,j) 的平方,gcd 表示最大公约数,以下是这个表的前四行的前四列:

1  1  1  1
1  4  1  4
1  1  9  1
1  4  1 16

小明突然冒出一个奇怪的想法,他想知道这张表中所有元素的和。 由于表过于庞大,他希望借助计算机的力量。

输入格式

一行一个正整数 n 意义见题。

输出格式

一行一个数,表示所有元素的和。由于答案比较大,请输出模1000000007(即109+7)后的结果。

输入输出样例

输入 #1复制

4

输出 #1复制

48

说明/提示

对于 30\%30% 的数据,n\le 1000n≤1000。

存在 10\%10% 的数据,n = 10^5n=105。

对于 60\%60% 的数据,n\le 10^6n≤106。

对于 100\%100% 的数据,n\le 10^7n≤107。

 解题思路:要求∑∑gcd(i,j)²,

枚举最大公约数d,∑d∑∑(gcd(i,j)²==d)

把d替换成d²,∑d²∑∑(gcd(i,j)==d)

又(i/gcd(i,j))*(j/gcd(i,j))=1,上式化为

 第三个求和可以用欧拉函数表示,即

 接下来线性筛法求欧拉函数然后前缀和即可。

#include<bits/stdc++.h> 
using namespace std;
typedef long long ll;
const int N=1e7+5;
int presum[N];
vector<int>prime;
bool vis[N];
int phi[N];
void get_phi(int n)
{
    phi[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i])
        {
            phi[i]=i-1;
            prime.emplace_back(i);
        }
        for(int j=0;j<prime.size()&&i*prime[j]<=n;j++)
        {
            vis[i*prime[j]]=true;
            if(i%prime[j]==0)
            {
                phi[i*prime[j]]=phi[i]*prime[j];break;
            }
            else phi[i*prime[j]]=phi[i]*(prime[j]-1);
        }
    }
}
int main( )
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    int mod=1e9+7;
    get_phi(n);
    for(int i=1;i<=n;i++)
    {
        presum[i]=presum[i-1]+phi[i];presum[i]%=mod;
    }
    ll ans=0;
    for(ll i=1;i<=n;i++)
    {
        ans=(ans+((i*i%mod)*(presum[n/i]*2-1))%mod)%mod;
    }
    cout<<ans;
    return 0;
}

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

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

相关文章

什么样的电容笔好用?好用的平板触控笔

现在使用电容笔的人越来越多了&#xff0c;尤其学生党和上班族&#xff0c;可以使用电容笔来提高生产效率&#xff0c;这个时候电容笔的书写流畅度就非常重要&#xff0c;今天给大家介绍四款平价又好用的电容笔。跟我来看看吧&#xff01; 一、使用电容笔的用途&#xff1a; …

四、LLC 谐振变换器

变换器实现 ZVS 的限制 全面了解LLC谐振变换器实现ZVS的条件&#xff0c;把变换器主电路变形成图所示形式。其中 Coss1、Coss2分别为开关管 S1、S2 漏-源极间的寄生电容&#xff0c;并且Coss1Coss2 Coss 。Cstray为与谐振网络并联的等效寄生电容&#xff0c;则变换器在 ZVS 条…

【数据恢复、安全和备份解决方案】上海道宁与LSoft为企业提供先进的技术来处理现代数据安全和保存问题

需要备份和恢复磁盘、 恢复已删除的文档和照片、 安全擦除磁盘、 监控硬盘健康状况、 甚至在Windows 无法正常启动时修复 PC&#xff1f; Active Data Studio是 一组桌面应用程序 和可引导CD/DVD或USB磁盘 用于将任何系统引导至 Windows恢复环境 开发商介绍 LSoft Te…

MySQL数据库 – node使用

1 MySQL查询对象 2 MySQL查询数组 3 mysql2库介绍使用 4 mysql2预处理语句 5 mysql2连接池使用 6 mysql2的Promi 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句&#xff08;表现形式是有符号&#xff1a;&#xff1f;&#xff09;。需…

计算机网络管理-SNMP网络管理中遇到的问题及解决

启动网络发现的网络拓扑呈现错误 在实验中我发现&#xff0c;进入SNMPc 工具后&#xff0c;因为先前我是开启了网络发现的功能的&#xff0c;因此程序会自动生成拓补图&#xff0c;自动生成的网络规划是错误的&#xff0c;如下图所示&#xff1a; 我的设备&#xff1a;cdypc没…

手机号码在网时长 API 探索:精准营销与用户洞察

随着移动互联网的蓬勃发展&#xff0c;手机在网时长成为评估用户活跃度和风险控制的关键指标。手机号码在网时长 API 提供了查询手机号在网时长、判断活跃程度以及个性化推荐和优惠等功能&#xff0c;为企业实现精准营销、有效风险控制和深入用户洞察提供了有力支持。 本文将深…

pnpm v8.6 正式发布,软件包管理器

导读pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时&#xff0c;如果你有 100 个使用 lodash 的项目&#xff0c;你将在磁盘上有 100 份 lodash 的拷贝&#xff0c;而使用 pnpm 时&a…

分类树,我从2s优化到0.1s

前言 分类树查询功能&#xff0c;在各个业务系统中可以说随处可见&#xff0c;特别是在电商系统中。 但就是这样一个简单的分类树查询功能&#xff0c;我们却优化了5次。 到底是怎么回事呢&#xff1f; 背景 我们的网站使用了SpringBoot推荐的模板引擎&#xff1a;Thymelea…

保经济、促创新,汽车行业综合采购(系统)数智化解决方案

汽车行业是中国国民经济的支柱产业&#xff0c;公安部数据显示&#xff0c;我国平均每百户家庭拥有汽车达到60辆。广阔的市场为行业带来大量需求&#xff0c;以及激烈的市场竞争&#xff1b;同时我国汽车产业正处在从传统工业时代向数字时代迈进的关键时期&#xff0c;急需创新…

【Rust日报】2023-06-07 使用 C++ 编写通用库并在 Rust 中使用它 (WASI)

使用 C 编写通用库并在 Rust 中使用它 (WASI) WebAssembly 简介 WebAssembly 是一种二进制指令格式&#xff0c;旨在成为一种低级虚拟机&#xff0c;可以在 Web 浏览器中以接近本机的速度运行代码。它不特定于网络&#xff0c;也可以在其他平台上运行。WebAssembly 代码可以从各…

【嵌入式环境下linux内核及驱动学习笔记-(15-1)例程】

目录 1、在APP直接调用标准文件IO操作I2C(针对学习笔记-15的15.3节)1.1 mail.c1.2 mpu6050.h1.3 mpu6050.c1.4 Makefile 2、以外称id的方式进行匹配的i2c驱动2.1 mpu6050.h2.2 mpu6050_i2c_client.c2.3 mpu6050_i2c_driver.c2.4 read_mpu.c 测试的应用层APP2.5 Makefile 3、以设…

Python3数据分析与挖掘建模(10)复合分析-交叉分析与实现示例

1. 复合分析 1.1 概述 复合分析&#xff08;Factorial Analysis&#xff09;是一种统计分析方法&#xff0c;用于研究多个因素对观测结果的影响&#xff0c;并探究各个因素之间的相互作用效应。 在复合分析中&#xff0c;研究者会选择多个因素&#xff08;也称为处理变量或独…

武汉涉密系统集成资质保密制度涵盖哪些内容

涉密信息系统集成资质申请其中最核心的就是保密制度管理&#xff0c;这里面涉及到保密管理的方方面面&#xff0c;现场审查也是围绕保密制度建设内容来打分的。申报单位应当建立规范、操作性强的保密制度&#xff0c;并根据实际情况及时修订完善。保密制度的具体要求应当体现在…

highlight clock tree

当分析clock tree需要在图形界面highlight clock tree时&#xff0c;最朴实无华的方法就是贴报告&#xff0c;除此之外这里也分享一下用命令的方法。 1.Imported Path Pins 1&#xff09;Highlight > Color By > Imported Path Pins 2&#xff09;report_timing icc2…

智慧园区物业可视化大屏

随着万物互联、数字信息时代的到来&#xff0c;也给物业园区管理行业带来变革性影响。 园区作为城市的基本组成单元&#xff0c;是人口和产业的重要聚集区&#xff0c;现已逐渐成为中国经济转型升级和创新发展的主力。 智慧园区物业可视化整合园区现有信息系统的数据资源&#…

OpenStack部署(四)

OpenStack部署 8. Dashboard8.1 安装并配置8.2 重启web服务器以及会话存储服务8.3 浏览器访问配置 9. Designate9.1 创建Designate数据库并授权9.2 获得admin凭证9.3 创建designate用户并设置密码9.4 添加admin角色到designate用户9.5 创建designate服务实体9.6 创建designate服…

【计算机组成与体系结构Ⅰ】章节测试(1-3)

下列是计算机中几种常见的机器数编码&#xff1a; ①原码 ②反码 ③补码 零的表示唯一的是&#xff08; &#xff09; A&#xff0e;仅③ B&#xff0e;② C&#xff0e;①、② D&#xff0e;①、③ 下列采用偶校验的8位奇偶校验编码中正确的是&#xff08; &#xff09;…

【Spring】——Spring简单 读和取

前言 ❤️❤️❤️Spring专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring_冷兮雪的博客-CSDN博客 上期我们讲解了Spring的创建与使用&#xff0c;发现 将Bean 注册到容器 这一步中&#xff0c;如果Bean对象…

Matter协议高速崛起,你真的了解它吗?

今天我们要聊的话题&#xff0c;和智能家居有关。 说到智能家居&#xff0c;大家应该都不会陌生。早在本世纪初&#xff0c;物联网概念刚刚诞生的时候&#xff0c;最主要的应用领域&#xff0c;就是智能家居。 这些年来&#xff0c;随着数字技术的不断发展&#xff0c;越来越多…

MINIX 已死,Linux 又将如何呢?

导读MINIX 操作系统大约的确已经死了。Minix 原来是荷兰阿姆斯特丹的 Vrije 大学计算机科学系的 Andrew S. Tanenbaum 教授所开发的一个类 Unix 操作系统&#xff0c;全部代码共约 12,000 行&#xff0c;起初是为给学生讲解操作系统的运作细节而开发。 Linus Torvalds 也曾表示…