莫比乌斯反演/容斥 +2020ICPC 江西省大学生程序设计竞赛 A Simple Math Problem

题目描述

在这里插入图片描述
输入描述:
在这里插入图片描述

输出描述:
在这里插入图片描述
示例1
输入
3
输出
5

分析:

1.这个题其实考的是一个莫比乌斯反演题,但是由于我知识储备不够,没有看出来,题目给的范围可以瞎搞一下,所以下面容斥可以过。
2.转换一下就是一道经典的反演题,参考

AC代码:

容斥:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const int M=1e5+10;
int f[M];
int cal(int x){int num=0;while(x){num+=x%10;x/=10;}return num;
}
int main(){int n;cin>>n;ll ans=0;for(int i=2;i<=n;i++){int m=i,kk=0;for(int j=2;j*j<=n;j++){///唯一分解定理,求其素因子if(m%j==0){f[kk++]=j;while(m%j==0)m/=j;}}if(m>1) f[kk++]=m;int lim=1<<kk,sum=0;for(int j=1;j<lim;j++){///枚举哪些质因子被拿出来了int x=j,su=0,sm=1;for(int k=0;k<kk;k++){///找出哪些素因子被拿出if(x&(1<<k)){su++;sm*=f[k];}}if(su&1) sum+=n/sm-i/sm;///规定,当素因子拿出奇数个,则加上,在(i~n)里存在该质因子数的个数。else sum-=n/sm-i/sm;///当为偶数时,此时之前已经拿出,重复,需减掉。}///sum为不互质的数;///n-i,为总数,原为找寻的for(j=i+1,j<=n;j++)中(i,j)互质的数ans+=(n-i-sum)*cal(i);}ans+=n;///没有枚举1,因为全部会被标记,所以+1cout<<ans<<endl;return 0;
}

莫比乌斯反演:

#include<stdio.h>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int M=1e5+10;
int prime[M],mu[M],f[M];
int cnt;
bool book[M];
void sieve(int N)
{mu[1]=1;for(int i=2; i<=N; i++){if(!book[i])prime[cnt++]=i,mu[i]=-1;for(int j=0; prime[j]<=N/i; j++){book[i*prime[j]]=true;if(i%prime[j]==0)break;mu[i*prime[j]]=-mu[i];}}for(int i = 0; i <= N; i++){int x = i;while(x){f[i]+=x%10;x/=10;}}
}
int main()
{sieve(M - 1);int n;scanf("%d",&n);ll ans=0;for(int i=1; i<=n; i++){if(!mu[i])continue;ll res=0;for(int j=1; j<=n/i; j++)res+=(ll)f[j*i]*(n/i-j+1);//1LL,长整型1,和*1.0一样,改变数据类型用;ans+=mu[i]*res;}printf("%lld\n",ans);return 0;
}

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

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

相关文章

猎鹰与龙飞船基于Linux,采用C++、Chromium与JS开发

最近两天科技界最重大的事件莫过于马斯克的 SpaceX 成功实现了猎鹰 9 号&#xff08;Falcon 9&#xff09;带着龙飞船&#xff08;Crew Dragon&#xff09;成功发射&#xff0c;并使飞船与国际空间站对接&#xff0c;将 NASA 两名宇航员送上了轨道前哨。背后关于 Falcon 9 与 C…

[JavaWeb-JavaScript]JavaScript运算符

运算符 1. 一元运算符&#xff1a;只有一个运算数的运算符&#xff0c;-- &#xff0c; (正号) * --: 自增(自减)* (--) 在前&#xff0c;先自增(自减)&#xff0c;再运算* (--) 在后&#xff0c;先运算&#xff0c;再自增(自减)va* (-)&#xff1a;正负号* 注意&#xff1a;…

java编码给出二维数组List<List<Integer>>matrix,输出每列最小的值

import java.util.LinkedList; import java.util.List;public class Main {public static void main(String[] args){/** a 是一个链表 &#xff0c;链表里面存放的对象是List<Integer>a* temp 是 List<Integer>* */List<List<Integer>> a new Linked…

博客系统知多少:揭秘那些不为人知的学问(四)

点击上方关注“汪宇杰博客” ^_^上篇《博客系统知多少&#xff1a;揭秘那些不为人知的学问&#xff08;三&#xff09;》介绍了博客协议或标准。本篇终章介绍设计博客系统有哪些知识点。1.“博客”的前世今生2.我的博客故事3.谁是博客的受众&#xff1f;4. 博客基本功能设计要点…

[JavaWeb-JavaScript]JavaScript特殊语法

JS特殊语法&#xff1a; 1. 语句以;结尾&#xff0c;如果一行只有一条语句则 ;可以省略 (不建议)2. 变量的定义使用var关键字&#xff0c;也可以不使用* 用&#xff1a; 定义的变量是局部变量* 不用&#xff1a;定义的变量是全局变量(不建议)

动态规划专题

目录动态规划基础钢条切割矩阵链乘法动态规划原理最优子结构经典问题&#xff1a;子问题重叠重构最优解最长公共子序列最优二叉搜索树最长连续不下降子序列最长不下降子序列经典问题&#xff08;来自习题&#xff09;DAG 中的最长简单路径最长回文子序列最长回文子串记忆化搜索…

Azure 国际版与中国版服务列表对(2020年6月版)

点击上方关注“汪宇杰博客” ^_^对于选择Azure平台的用户来说&#xff0c;会面临选择国内还是国际版的问题。由于一些原因&#xff0c;由世纪互联运营的中国大陆版Azure无法落地所有的国际版服务。相比几年前&#xff0c;情况已经有了一定的改善。本文列出了国际版和国内版Azur…

[JavaWeb-JavaScript]JavaScript流程控制语句

流程控制语句&#xff1a; 1. if...else...2. switch:* 在java中&#xff0c;switch语句可以接受的数据类型&#xff1a; byte int shor char,枚举(1.5) ,String(1.7)* switch(变量):case 值:* 在JS中,switch语句可以接受任意的原始数据类型3. while4. do...while5. for

解读三组容易混淆的Dockerfile指令

长话短说&#xff0c;今天分享三组容易混淆的Dockerfile指令&#xff0c; 帮助大家编写更优雅的Dockfile文件、构建更纯净的Docker镜像。COPY vs ADDCOPY、ADD主体功能类似&#xff1a;从指定位置src拷贝文件到Docker镜像dest。COPY <src>... <dest> ADD <src&…

[JavaWeb-HTML]HTML概念介绍和快速入门

HTML 1. 概念&#xff1a;是最基础的网页开发语言* Hyper Text Markup Language 超文本标记语言* 超文本:* 超文本是用超链接的方法&#xff0c;将各种不同空间的文字信息组织在一起的网状文本.* 标记语言:* 由标签构成的语言。<标签名称> 如 html&#xff0c;xml* 标记…

ASP.NET Core使用Nacos SDK访问阿里云ACM

背景 前段时间&#xff0c;cranelee 在Github上给老黄提了个issues&#xff0c; 问到了如何用Nacos的SDK访问阿里云ACM。https://github.com/catcherwong/nacos-sdk-csharp/issues/13刚看到这个issues的时候&#xff0c;老黄也是觉得一脸懵逼&#xff0c;好像这两者没有什么必然…

[JavaWeb-JavaScript]JavaScript_Function函数(方法)对象

Function&#xff1a;函数(方法)对象 1. 创建&#xff1a;1. var fun new Function(形式参数列表,方法体); //忘掉吧2. function 方法名称(形式参数列表){方法体}3. var 方法名 function(形式参数列表){方法体}2. 方法&#xff1a;3. 属性&#xff1a;length:代表形参的个数…

java基础输入输出语句

输入语句 方法一&#xff1a; System.in和System.out方法 缺点一: 该方法能获取从键盘输入的字符&#xff0c;但只能针对一个字符的获取缺点二: 获取的只是char类型的。如果想获得int,float等类型的输入,比较麻烦。 import java.io.IOException; public class test {public…

为.netcore助力--WebApiClient正式发布core版本

1、前言NCC WebApiClient 已成熟稳定&#xff0c;发布了WebApiClient.JIT 和 WebApiClient.AOT 两个 NuGet 包&#xff0c;累计近 10w 次下载。我对它的高可扩展性设计相当满意和自豪&#xff0c;但 WebApiClient 并不因此而停下脚步&#xff0c;在一年前&#xff0c;我产生了编…

[JavaWeb-JavaScript]JavaScript_Data日期对象

Date&#xff1a;日期对象 1. 创建&#xff1a;var date new Date();2. 方法&#xff1a;toLocaleString()&#xff1a;返回当前date对象对应的时间本地字符串格式getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差示例代码如下: <!DOCTYPE …

括号匹配+Java栈

括号匹配 import java.util.LinkedList;class MyStack{private int num;private LinkedList<Character>date;public MyStack(){this.num0;datenew LinkedList<Character>();}public boolean isEmpty(){return num0?true:false;}public void push(Character ch){t…

一个static和面试官扯了一个小时,舌战加强版

一&#xff1a;背景1. 讲故事最近也是奇怪&#xff0c;在社区里看到好几篇文章聊static 的玩法以及怎么拿这个和面试官扯半个小时&#xff0c;有点意思&#xff0c;点进去看都是java版的&#xff0c;这就没意思了&#xff0c;怎么也得有一篇和面试官扯C# 中的 static用法撒&…

[JavaWeb-JavaScript]JavaScript_Math数学对象

Math&#xff1a;数学对象 1. 创建&#xff1a;* 特点&#xff1a;Math对象不用创建&#xff0c;直接使用。 Math.方法名();2. 方法&#xff1a;random():返回 0 ~ 1 之间的随机数。 含0不含1ceil(x)&#xff1a;对数进行上舍入。floor(x)&#xff1a;对数进行下舍入。round(x…

数据结构整理中。。。

目录栈队列链表单向链表双向链表向链表中插入&#xff08;写入&#xff09;数据单向链表单向循环链表双向循环链表从链表中删除数据单向&#xff08;循环&#xff09;链表双向循环链表哈希表哈希函数冲突拉链法闭散列法并查集启发式合并&#xff08;按秩合并&#xff09;带权并…

.NET开发者省份分布排名

什么叫.NET开发者省份分布排名呢&#xff1f; 顾名思义&#xff0c;这几个词大家都认识&#xff0c;.NET开发者都集中在城市&#xff0c;涵盖一线城市到五线城市。排名的方法非常简单粗暴&#xff0c;就是根据本公众号&#xff08;dotnet跨平台&#xff09;的省份订阅读者数量排…