[hdu6051]If the starlight never fade-[欧拉函数+原根]
Description
Solution
orz大佬yxq。。本题神仙
设g为P的原根。
设$x=g^{a}$,$y=g^{b}$。
由于$(g^{a}+g^{b})^{i}\equiv (g^{a})^{i}(mod P)$
可得$(1+g^{b-a})^{i}\geqslant 2(mod P)$。
设$g^{k}=1+g^{b-a}$($1\leq k<P-1$)(注意这里的后一个符号是<)!,故$ki\equiv 0(mod P-1)$。
可得k最小为$\frac{P-1}{gcd(P-1,i)}$,又因为k<P-1所以k的取值范围为:$k=cnt\frac{P-1}{gcd(P-1,i)}$。
其中cnt属于集合[1,gcd(P-1,i)-1]。(当cnt=gcd(P-1,i)时k恰好为P-1,且当cnt变小k一定变小,故cnt的上界为gcd(P-1,i)-1)
此处由于y是有限制(<=m)的不便处理,我们考虑当y固定时x的个数(x可以是1到p-1任意值)。
由于$g^{k}=g^{b-a}$,即$g^{k}-1=g^{b-a}$,则$x(g^{k}-1) \equiv y(modP)$。
因为$1\leq k<P-1$,所以针对不同的$g^{k}-1$会有不同的x。
根据以上推断可以分析出$f(i)=m(gcd(P-1,i)-1)$。
$ans=\sum _{i=1}^{P-1}f(i)=m\sum _{i=1}^{P-1}i(gcd(P-1,i)-1)$
$=-P(P-1)+m\sum _{i=1}^{P-1}i(P-1,i)$
$=-P(P-1)+m\sum _{d|(P-1) }d\sum _{ d|i,1\leq i\leq P-1}i[gcd(P-1,i)==d]$
$=-P(P-1)+m\sum _{d|(P-1) }d^{2}\sum_{i=1}^{\frac{P-1}{d}}i[gcd(\frac{P-1}{d},i)==1]$
$=-P(P-1)+m\sum _{d|(P-1)}d^{2}\frac{\frac{P-1}{d}\varphi(\frac{P-1}{d})+[\frac{P-1}{d}==1]}{2}$ *
*嗯我们或许还要证明一个东西。。
$\sum _{i=1}^{n}i[gcd(n,i)==1]=\frac{n\varphi(n)+[n==1]}{2}$
关于这个式子,关键点是如果gcd(n,i)=1,则gcd(n,n-i)=1。
证明。。显然吧。如果gcd(n,i)=1,$i[gcd(n,i)==1]+(n-i)[gcd(n,n-i)==1]=2n$,优秀的结论。然后这里当n=1要特判(因为此时n-i=1-1=0就不合法啦)。
接下来就可以愉快地搞事~
Code
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int mod=1e9+;
int m,p;
ll ans;
int getphi(int n)
{
int re=n;
for (int i=;(ll)i*i<=n;i++)
{
if (n%i==)
{
while (n%i==) n/=i;
re-=re/i;
}
}
if (n!=) re-=re/n;
return re;
}
ll _work(int d,int o)
{
return 1ll*d*d%mod*(1ll*o*getphi(o)+(o==))/%mod;
}
ll solve(int x)
{
ll re=;
for (int i=;(i*i)<=x;i++)
if (x%i==)
{
re=(re+_work(x/i,i))%mod;
if (i!=x/i) re=(re+_work(i,x/i))%mod;
}
re-=((ll)x*(x+)/)%mod;
if (re<) re+=mod;
return re;
}
int T;
int main()
{
scanf("%d",&T);
for (int tt=;tt<=T;tt++){
scanf("%d%d",&m,&p);
ans=solve(p-);
printf("Case #%d: %lld\n",tt,ans*m%mod);
}
}
[hdu6051]If the starlight never fade-[欧拉函数+原根]的更多相关文章
- poj1284:欧拉函数+原根
何为原根?由费马小定理可知 如果a于p互质 则有a^(p-1)≡1(mod p)对于任意的a是不是一定要到p-1次幂才会出现上述情况呢?显然不是,当第一次出现a^k≡1(mod p)时, 记为ep(a ...
- poj1284(欧拉函数+原根)
题目链接:https://vjudge.net/problem/POJ-1284 题意:给定奇素数p,求x的个数,x为满足{(xi mod p)|1<=i<=p-1}={1,2,...,p ...
- POJ 1284 Primitive Roots (欧拉函数+原根)
<题目链接> 题目大意: 满足{ ( $x^{i}$ mod p) | 1 <=$i$ <= p-1 } == { 1, …, p-1 }的x称为模p的原根.给出p,求原根个数 ...
- hdu2588 GCD (欧拉函数)
GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数. (文末有题) 知 ...
- BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2553 Solved: 1565[Submit][ ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- COGS2531. [HZOI 2016]函数的美 打表+欧拉函数
题目:http://cogs.pw/cogs/problem/problem.php?pid=2533 这道题考察打表观察规律. 发现对f的定义实际是递归式的 f(n,k) = f(0,f(n-1,k ...
- poj2478 Farey Sequence (欧拉函数)
Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...
- 51Nod-1136 欧拉函数
51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...
- 欧拉函数 - HDU1286
欧拉函数的作用: 有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数.欧拉函数描述了一些列与这个f(n)有关的一些性质,如下: 1.令p为一个素数,n = p ^ k,则 ...
随机推荐
- Vim常用命令记录
(本文仅记录了Vim常用的按键功能和操作,用于备忘和查阅.若为Vim小白,建议先通过列出的参考资源获得对Vim更全面的了解.Vi 是几乎所有Linux发行版都支持的文字编辑工具,也是许多Linux下工 ...
- BZOJ1485:[HNOI2009]有趣的数列(卡特兰数)
Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...
- 【小M的作物】
这是一道我好像没写过的最小割 这道题如果没有那\(m\)条限制,我们完全可以贪心来做 但是硬要用网络流怎么办 可以转化为最小割模型 我们将源点\(S\)表示为耕地\(A\),汇点\(T\)表示为耕地\ ...
- WEB安全 Sqlmap 中绕过空格拦截的12个脚本
图片较小,可以右键点击图片-->选择 "在新标签中打开图片" --> 查看大图 Sql 注入时遇到过滤空格时可以使用下面12个脚本尝试绕过,在实际利用中可以灵活修改.
- 20145314郑凯杰 《Java程序设计》第10周学习总结
20145314郑凯杰 <Java程序设计>第10周学习总结 代码托管: 学习内容总结 网络编程 会打手机吗? 第一个问题:会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛 ...
- DPDK中使用VFIO的配置
VFIO VFIO是一个可以安全地把设备I/O.中断.DMA等暴露到用户空间(userspace),从而可以在用户空间完成设备驱动的框架.用户空间直接设备访问,虚拟机设备分配可以获得更高的IO性能. ...
- rman备份报错,全zero错误处理一例(bbed)
问题:某数据库在执行rman全备的时候,发现alert日志中有报错,报错提示, file 10,block 305076全部为zero,内容全零,处理过程如下 分析处理: 1. 这个问题可能是 系统或 ...
- GoogleMock初探(0)
在进行测试过程中,待测的类或者方法经常会依赖其他类或方法的实现.如果此时这些依赖还没有实现,则需要打桩.另外测试讲求独立,测试之间的互相依赖会导致测试最终混乱不堪. GoogleMock提供一套方法来 ...
- #leetcode刷题之路47-全排列 II
给定一个可包含重复数字的序列,返回所有不重复的全排列.示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 之前的https://www.cnblogs.com/ ...
- [JLOI2014]松鼠的新家(线段树,树链剖分)
题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...