博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2417
阅读量:4627 次
发布时间:2019-06-09

本文共 2231 字,大约阅读时间需要 7 分钟。

1 Accepted    8508K    391MS    C++   2004B  2 相比下边,,优化太多太多了。。。  3 /**  4 baby-step-giant-step  因为数据量太大,,自己写hash  5   6 **/  7 #include 
8 #include
9 #include
10 #include
11 using namespace std; 12 long long n,a,b; 13 const int maxn = 499991; 14 bool Hash[maxn]; 15 long long idx[maxn]; 16 long long val[maxn]; 17 18 void ex_gcd(long long a,long long b,long long &x,long long &y){ 19 if(b==0){ 20 x=1; 21 y=0; 22 return ; 23 } 24 ex_gcd(b,a%b,x,y); 25 long long tmp = x-(a/b)*y; 26 x = y; 27 y = tmp; 28 } 29 30 long long euler(long long n){ 31 long long i,tmp = n; 32 for(i=2;i*i<=n;i++)if(n%i==0){ 33 tmp = tmp/i*(i-1); 34 while(n%i==0) 35 n = n/i; 36 } 37 if(n>1) 38 tmp = tmp/n*(n-1); 39 return tmp; 40 } 41 42 void Insert(long long id,long long num){ 43 long long k = num%maxn; 44 while(Hash[k]&&val[k]!=num){ 45 k++; 46 if(k==maxn) k = k-maxn; 47 } 48 if(!Hash[k]){ 49 Hash[k] =1; 50 idx[k] = id; 51 val[k] = num; 52 } 53 } 54 55 long long found(long long num){ 56 long long k = num%maxn; 57 while(Hash[k]&&val[k]!=num){ 58 k++; 59 if(k==maxn) k = k-maxn; 60 } 61 if(!Hash[k]){ 62 return -1; 63 } 64 return idx[k]; 65 } 66 67 long long baby_step(long long a,long long b,long long n){ 68 long long m = ceil(sqrt(euler(n)+0.5)); 69 memset(Hash,false,sizeof(Hash)); 70 memset(idx,-1,sizeof(idx)); 71 memset(val,-1,sizeof(val)); 72 long long d=1; 73 for(long long i=0;i
110 #include
111 #include
112 #include
113 using namespace std;114 115 long long powmod(long long a,long long b,long long n){116 if(b==0)117 return 1;118 long long c =1;119 while(b){120 if(b&1)121 c =c*a%n;122 a =a*a%n;123 b>>=1;124 }125 return c;126 }127 128 long long logmod(long long a,long long b,long long n){129 long long m,v,e=1,i;130 m = ceil(sqrt(n+0.5));131 //cout<<(double)(n-1)*1.0/m<
x;135 x.clear();136 x[1] =m;137 for(i=1;i

 

转载于:https://www.cnblogs.com/Bang-cansee/p/3724233.html

你可能感兴趣的文章
xml 加载多个properties文件
查看>>
PHP和MYSQL中的日期和时间
查看>>
变量初始化,基类构造器,基类构造器中调用虚函数,子类构造器
查看>>
极其蛋疼的if else 中的break用法
查看>>
Map集合
查看>>
C#/java 执行oracle package
查看>>
程序面试试题
查看>>
Wall POJ - 1113 凸包模板
查看>>
leetcode算法: Find Bottom Left Tree Value
查看>>
python opencv3 grabcut前景检测
查看>>
内容安全策略(CSP)_防御_XSS_攻击的好助手
查看>>
获取URL中的参数
查看>>
宝塔面板安装swoole扩展
查看>>
HDOJ_1061_Rightmost Digit
查看>>
【小笨鸟看JDK1.7集合源码之三】LinkedList源码剖析
查看>>
bfs,dfs区别
查看>>
Javascript端加密java服务端解密
查看>>
xml文件中引号如何处理
查看>>
Centos 下 Jenkins2.6 + Git + Maven Shell一件部署与备份
查看>>
MVC原理
查看>>