Bzoj2219 数论之神

Time Limit: 3 Sec  Memory Limit: 259 MB
Submit: 954  Solved: 268

Description

在ACM_DIY群中,有一位叫做“傻崽”的同学由于在数论方面造诣很高,被称为数轮之神!对于任何数论问题,他都能瞬间秒杀!一天他在群里面问了一个神题:
对于给定的3个非负整数 A,B,K 求出满足 (1) X^A = B(mod 2*K + 1) (2) X 在范围[0, 2K]
内的X的个数!自然数论之神是可以瞬间秒杀此题的,那么你呢?

Input

第一行有一个正整数T,表示接下来的数据的组数( T <= 1000) 之后对于每组数据,给出了3个整数A,B,K (1 <= A, B <= 10^9, 1 <= K <= 5 * 10^8)

Output

输出一行,表示答案

Sample Input

3
213 46290770 80175784
3 46290770 80175784
3333 46290770 80175784

Sample Output

27
27
297

HINT

新加数组一组--2015.02.27

Source

数论 鸣谢 AekdyCoin

数学问题  原根 阶 指标 中国剩余定理 脑洞题

吼题

学姐的讲解很棒棒 http://blog.csdn.net/regina8023/article/details/44863519

模数$P=2*K+1$很大,在这个范围下没什么方法可以有效计算,所以需要优化数据范围。

将P分解质因数,$p_{1}^{a1}+p_{2}^{a2}+p_{3}^{a3}+...$

分别在每个模$ p_{i}^{ai} $ 的意义下计算出答案,将这些答案累乘起来就是最终的答案。(在每个模意义下选出一个解,则构成了一组同余方程,根据中国剩余定理,每组同余方程对应一个唯一解,所以可以用乘法原理统计总答案数)

假设当前我们在处理一个$p^{a}$

现在需要求$x^a \equiv b (\mod  p^{a})$的解个数

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 #define LL long long
 7 using namespace std;
 8 const int mod=1e9+7;
 9 const int mxn=1000010;
10 int read(){
11     int x=0,f=1;char ch=getchar();
12     while(ch<‘0‘ || ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
13     while(ch>=‘0‘ && ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
14     return x*f;
15 }
16 int n;
17 int a[mxn];
18 int f[mxn];
19 int main(){
20 //    freopen("in.txt","r",stdin);
21     int i,j,cnt=0;
22     n=read();
23     for(i=1;i<=n;i++){a[i]=read();if(a[i]==1)cnt++;}
24     f[0]=1;f[1]=1;f[2]=2;
25     for(i=3;i<=cnt;i++)f[i]=((LL)f[i-1]+(LL)f[i-2]*(i-1)%mod)%mod;
26     for(i=n;i>cnt;i--)f[cnt]=(LL)f[cnt]*i%mod;
27     printf("%d\n",f[cnt]);
28     return 0;
29 }
时间: 2024-10-23 04:02:44

Bzoj2219 数论之神的相关文章

【BZOJ】【2219】数论之神

中国剩余定理+原根+扩展欧几里得 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: 1 LL Get_yuangen(LL p,LL phi){ 2 int c=0; 3 for(int i=2;i*i<=phi;i++) 4 if (phi%i==0) 5 f[++c]=i,f[++c]=phi/i; 6 for(int g=2;;g++){ 7 int j; 8 for(j=1;j<=c;j++) if

BZOJ 2219: 数论之神

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2219 N次剩余+CRT... 就是各种奇怪的分类讨论.. #include<cstring> #include<iostream> #include<cstdio> #include<map> #include<cmath> #include<algorithm> #define rep(i,l,r) for (int i=l;i

数论之神

[题目描述] 对于给定的3个非负整数A,B,K求出满足下列条件的X的个数. (1) X^A = B(mod 2*K + 1) (2) X ∈[0, 2K] [输入描述] 第一行有一个正整数T,表示接下来的数据的组数( T <= 1000) 之后对于每组数据,给出了3个整数A,B,K (1 <= A, B <= 10^9, 1 <= K <= 5 * 10^8). [输出描述] 输出一行,表示答案. [输入样例] 3 213 46290770 80175784 3 462907

BZOJ 2219 数论之神 BSGS+CRT

题意:链接 方法: BSGS+CRT 解析: 这道题有什么区别呢? 就是他取模的值不是一个质数了 这怎么办呢? 我们来把这个数分解质因数. P=∏piti 然后对于每一个piti我们单独计算. 最后用中国剩余定理合并 这其实跟想象中的中国剩余定理没有什么关系,其实是其中的一个性质,就是mod p的解数总数量等于每一个mod piti的乘积. 这是一个性质,别问我证明. 原方程xA=B(mod C) 转化为xA=B(mod Ci)?>Ci是质数或是质数的幂次. 我们可以单独计算. 这跟之前的题类似

BZOJ 2219 数论之神 数论

题目大意:求在[0,p)范围内的解的个数 鏼爷的题解:http://jcvb.is-programmer.com/posts/42036 我只是来粘代码的QAQ 指标啥的原根啥的中国剩余定理啥的真的完全不知道QAQ #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define INF static_cas

省选之前的未完成的计划(截至到省选)

PLAN OF THE COMING HEOI good problems:-bzoj4823:[Cqoi2017]老C的方块 [*]-bzoj3171:[Tjoi2013]循环格 [*]-bzoj4200:[Noi2015]小园丁与老司机 [*]-bzoj1061:[Noi2008]志愿者招募 [*]-bzoj3600:没有人的算术 [*]-bzoj2806:[Ctsc2012]Cheat [*]-bzoj2219:数论之神 [*]-bzoj2595:[Wc2008]游览计划 [*]-bzoj

CPC23-4-K. 喵喵的神数 (数论 Lucas定理)

喵喵的神?数 Time Limit: 1 Sec Memory Limit: 128 MB Description 喵喵对组合数比較感兴趣,而且对计算组合数很在行. 同一时候为了追求有后宫的素养的生活,喵喵每天都要研究 质数. 我们先来复习一下什么叫做组合数.对于正整数P.T 然后我们再来复习一下什么叫质数.质数就是素数,假设说正整数N的约数仅仅有1和它本身,N就是质数:另外. 1不是质数. 今天,喵喵想要知道 Input 输入第一行是一个整数N(N<=1000). 接下来N行,每行包含一个正整

神炎皇(模拟测试67)(数论)

神炎皇: 题意: 对于一个整数对$(a,b)$,若满足$a+b<=n$且$a+b$是$a*b$的因子,则成为神奇的数对.请问这样的数对共有多少个?($N<=10^{14}$) 题解: 已知$a+b<=n\\ (a+b)|ab$. 设$d=\gcd(a,b),x=a/d,y=b/d$. 上式为$(x+y)*d<=n(1)\\ (x+y)|x*y*d(2)$. 因为$\gcd(x+y,x)=\gcd(x+y,y)=\gcd(x,y)=1$. (2)式可化减为$(x+y)|d$. 又由(

hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 889    Accepted Submission(s): 207 Problem Description "今有物不知其数,三三数之有二,五五数之有三,七七数之有