题目链接 http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf

B题 数论题      h(n)=∑ d|n φ(d) × n /d   求一个数的h值   我们只要意识到他是一个积性函数就解决了  这个函数看起来很像狄利克雷卷积 我们构造一个函数f(n)=n;h(n)=∑ d|n φ(d) × f(n /d)

欧拉函数φ是积性函数 构造的f是完全积性函数 所以他们的狄利克雷卷积h也是积性函数  然后推导一下答案就是 ∑(pi^qi+(pi-1)*qi*pi^(qi-1))  (1<=i<=m)

其实当你没有意识到他是一个积性函数    推导的时候也可以发现他可以用组合情况写   这就用到了子集生成知识了很简单一个dfs就可以了 m最大20 子集个数最大就是2^20 可以接受

然后枚举子集就可以得到结果了

关于  积性函数和狄利克雷卷积推荐几个博客  https://www.cnblogs.com/jianglangcaijin/p/6035766.html#undefined

                    https://blog.csdn.net/liyizhixl/article/details/79997478

                    https://www.cnblogs.com/wfj2048/p/6537861.html

积性函数性质

1.若n=pa11pa22pa33...pannn=p1a1p2a2p3a3...pnan,那么f(n)=f(pa11)f(pa22)f(pa33)...f(pann)f(n)=f(p1a1)f(p2a2)f(p3a3)...f(pnan)。
2.若ff为积性函数且有f(pn)=fn(p)f(pn)=fn(p),那么ff为完全积性函数。

狄利克雷卷积性质:

  1. (f∗g)=∑d|nf(d)g(nd)(f∗g)=∑d|nf(d)g(nd)
  2. f∗(g∗h)=(f∗g)∗hf∗(g∗h)=(f∗g)∗h
  3. f∗(g+h)=f∗g+f∗hf∗(g+h)=f∗g+f∗h
  4. f∗g=g∗f

位向量法子集生成模板 O(n*2^n)

 #include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5+,M = ;
typedef long long ll;
int a[maxn],b[maxn];
void print_subset(int n, int b[],int cur)
{
if(cur==n)
{
for(int i=;i<cur;i++)
{
if(b[i])
printf("%d ",a[i]);
}
printf("\n");
return;
}
b[cur]=;
print_subset(n,b,cur+);
b[cur]=;
print_subset(n,b,cur+);
}
int main()
{
int n;
cin>>n;
for(int i=;i<n;i++)
a[i]=i+;
memcpy(b,a,sizeof(a));
print_subset(n,b,); //传参后会修改b的值 所以copy一个数组
}

AC代码

 #include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+ ,mod = ;
typedef long long ll;
ll poww(ll a,ll b)
{
ll ans=;
while(b>)
{
if(b&)
ans=(ans*a)%mod;
b=b>>;
a=(a*a)%mod;
}
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
ll q,p,ans=;
int m;
cin>>m;
while(m--)
{
cin>>p>>q;
ll temp=;
temp=(temp*(p-))%mod;
temp=(temp*q)%mod;
temp=(temp*poww(p,q-))%mod;
temp=(temp+poww(p,q))%mod;
ans=ans*temp%mod;
//cout<<ans<<endl;
}
cout<<ans<<endl;
}
}

2017 CCPC 杭州 HDU6265B 积性函数的更多相关文章

  1. bzoj2693--莫比乌斯反演+积性函数线性筛

    推导: 设d=gcd(i,j) 利用莫比乌斯函数的性质 令sum(x,y)=(x*(x+1)/2)*(y*(y+1)/2) 令T=d*t 设f(T)= T可以分块.又由于μ是积性函数,积性函数的约束和 ...

  2. hdu1452 Happy 2004(规律+因子和+积性函数)

    Happy 2004 题意:s为2004^x的因子和,求s%29.     (题于文末) 知识点: 素因子分解:n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en 因子 ...

  3. HDU 1452 Happy 2004 (逆元+快速幂+积性函数)

    G - Happy 2004 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Subm ...

  4. spoj 3871. GCD Extreme 欧拉+积性函数

    3871. GCD Extreme Problem code: GCDEX Given the value of N, you will have to find the value of G. Th ...

  5. POJ 2480 Longge's problem (积性函数,欧拉函数)

    题意:求∑gcd(i,n),1<=i<=n思路:f(n)=∑gcd(i,n),1<=i<=n可以知道,其实f(n)=sum(p*φ(n/p)),其中p是n的因子.为什么呢?原因 ...

  6. poj 2480 Longge's problem 积性函数

    思路:首先给出几个结论: 1.gcd(a,b)是积性函数: 2.积性函数的和仍然是积性函数: 3.phi(a^b)=a^b-a^(b-1); 记 f(n)=∑gcd(i,n),n=p1^e1*p2^e ...

  7. HDU 1452 Happy 2004(因子和的积性函数)

    题目链接 题意 : 给你一个X,让你求出2004的X次方的所有因子之和,然后对29取余. 思路 : 原来这就是积性函数,点这里这里这里,这里讲得很详细. 在非数论的领域,积性函数指所有对于任何a,b都 ...

  8. bzoj 2693: jzptab 线性筛积性函数

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 444  Solved: 174[Submit][Status][Discus ...

  9. HDU1452Happy 2004(高次幂取模+积性函数+逆元)

    题目意思:2004^x的所有正因数的和(S)对29求余:输出结果: 原题链接 题目解析:解析参照来源:点击打开链接 因子和 6的因子是1,2,3,6; 6的因子和是s(6)=1+2+3+6=12; 2 ...

随机推荐

  1. 开源项目:JEECG

    工程下载:https://github.com/zymqqc/jeecg-1

  2. SQL表与表连接关系

    一.SQL连接方式 left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录. inner j ...

  3. nginx for windows 安装

    一.nginx for windows 的安装地址: http://nginx.org/en/download.html 二.nginx 安装地址: http://nginx.org/en/docs/ ...

  4. iOS Programming Dynamic Type 2

    iOS Programming Dynamic Type  2       You will need to update two parts of this view controller for ...

  5. 契约式设计(DbC)感想(二)

    契约式设计6大原则的理解 在<Design by Contract原则与实践>中,作者定义了契约式设计的6大原则: 区分命令和查询: 将基本查询和派生查询区分开: 针对每个派生查询,设定一 ...

  6. elasticsearch学习笔记-倒排索引以及中文分词

    我们使用数据库的时候,如果查询条件太复杂,则会涉及到很多问题 1.无法维护,各种嵌套查询,各种复杂的查询,想要优化都无从下手 2.效率低下,一般语句复杂了之后,比如使用or,like %,,%查询之后 ...

  7. 计算机网络、OSI模型、TCP/IP族

    一.计算机网络分类 1.按通信距离分类: 局域网:LAN,10m-1000m,房间.校园: 城域网:MAN,10km,城市: 广域网:WAN,100km以上,国家.全球. 二.OSI(Open Sys ...

  8. 迅为I.MX6开发板工业级嵌入式开发平台

    迅为-i.MX6开发板是是基于ARM Cortex™-A9架构的高扩展性多核系列应用处理器, i.MX6系列芯片而且根据应用场合的不同,提供了可供选择的单核.双核和四核产品供客户选择.i.MX6系列的 ...

  9. Android(java)学习笔记196:ContentProvider使用之内容观察者01

    1. 内容观察者 不属于四大组件,只是内容提供者ContentProvider对应的小功能. 如果发现数据库内容变化了,就会立刻观察到. 下面是逻辑图:       当A应用中银行内部的数据发生变化的 ...

  10. 数据结构算法 - ConcurrentHashMap 源码解析

    五个线程同时往 HashMap 中 put 数据会发生什么? ConcurrentHashMap 是怎么保证线程安全的? 在分析 HashMap 源码时还遗留这两个问题,这次我们站在 Java 多线程 ...