2016百度之星资格赛 Problem A
来源:互联网 发布:通达信趋势浪指标源码 编辑:程序博客网 时间:2024/05/17 21:06
求从ai乘到aj的值mod 9973和从a1乘到aj 除以从a1乘到a(i-1)mod 9973效果是一样的
由于数太大每次乘ai都要mod 9973 要使用上面的方法就要用到乘法逆元;
我用的这个是费马小定理推出的乘法逆元,费马小定理就问度娘吧,超详解,费马小定理最容易看懂了。
最近学了数论好多东西,有点乱,我就不解释费马小定理了,写完这篇文章捋一捋思路
我直接用strlen(s)竟然超时了,,,可怕
#include<iostream>#include<math.h>#include<cstdio>#include<cstring>using namespace std;const int mod = 9973;char s[100000+10];int num[100000+10];int p[100000+10];int res[10000];int ni(int a,int b){ int x=1; while(b) { if(b&1)x=a*x%mod; b>>=1; a=a*a%mod; } return x;}int main(){ int t; for(int i=1;i<mod;i++)res[i]=ni(i,mod-2); while(~scanf("%d%*c",&t)) { scanf("%s",s); int m,n,len; len=strlen(s); // memset(num,0,sizeof(num)); // memset(p,0,sizeof(p)); num[0]=1; p[0]=1; for(int i=1;i<=len;i++) { num[i]=num[i-1]*(int)(s[i-1]-28)%mod; p[i]=res[num[i]]; } while(t--) { scanf("%d%d",&m,&n); printf("%d\n",num[n]*p[m-1]%mod); } } return 0;}
0 0
- 2016"百度之星" - 资格赛 Problem A
- 百度之星 2016资格赛 Problem A
- 2016百度之星资格赛 Problem A
- 2016"百度之星" - 资格赛(Astar Round1)Problem A
- 2016-百度之星-资格赛-Problem A【求逆元】
- HDU 5685:2016"百度之星" - 资格赛 Problem A
- 2016百度之星资格赛 Problem B
- 2016"百度之星" - 资格赛 Problem C
- 2016"百度之星" - 资格赛 Problem D
- 2016"百度之星" - 资格赛 Problem B
- 2016"百度之星" - 资格赛 Problem D
- 2016-百度之星-资格赛-Problem D
- 百度之星 2016资格赛 Problem C
- 2016百度之星资格赛 A题
- 2016"百度之星" - 资格赛(Astar Round1)Problem A(快速幂+逆元)
- Problem A(逆元) 2016"百度之星" - 资格赛(Astar Round1)
- 2016"百度之星" - 资格赛(Astar Round1)Problem A (乘法逆元)
- 2016"百度之星" - 资格赛(Astar Round1)Problem A B C D--java代码
- Fortran调用C语言小计
- PAT 1092. To Buy or Not to Buy (20)(字符串操作)
- 点击label时click事件被触发两次的坑
- Nginx实战(四) 限速功能
- 设置oracle数据库密码永不过期(ORA-28002)
- 2016百度之星资格赛 Problem A
- 过滤git log中的合并(merge)提交
- ORACLE、DB2临时表简介
- 图片异步加载工具类
- 使用Mysql和NoSQL实现热词统计功能
- Nginx实战(五) 反向代理
- 【iOS】让我们一次性解决导航栏的所有问题
- android系统源码目录system/framework下各个jar包的用途以及部分jar包编译源码的位置
- 【C语言学习笔记】一、数据类型那些事儿