pollard's rho模板题。

调参调到160ms无能为力了,应该是写法问题,不玩了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll e,p,c;
ll mul(ll u,ll v){
    return(u*v-ll((long double)u*v/p)*p+p)%p;
}
ll wop(ll u,ll v){
	ll s=1;
	for(;v;v>>=1){
		if(v&1)s=mul(s,u);
		if(v>1)u=mul(u,u);
	}
	return s;
}
void gcd(ll a,ll b,ll&x,ll&y){
	if(!b)x=1,y=0;
	else
		gcd(b,a%b,y,x),y-=a/b*x;
}
ll inv(ll a,ll b,ll x=0,ll y=0){
	gcd(a,b,x,y);
	return(x+b)%b;
}
ll sol(){
	ll d,i,j=19999811;
	for(int s=1;;++s){
		i=s^s&-s?i:j;
		j=(mul(j,j)+p-1)%p;
		if((d=__gcd(abs(i-j),p))!=1&&d!=p)
			break;
	}
	return(d-1)*(p/d-1);
}
int main(){
	cin>>e>>p>>c;
	ll d=inv(e,sol());
	cout<<d<<" "<<wop(c,d)<<endl;
}

  

BZOJ4522: [Cqoi2016]密钥破解的更多相关文章

  1. BZOJ4522:[CQOI2016]密钥破解(Pollard-Rho,exgcd)

    Description 一种非对称加密算法的密钥生成过程如下: 1. 任选两个不同的质数 p ,q 2. 计算 N=pq , r=(p-1)(q-1) 3. 选取小于r ,且与 r 互质的整数 e  ...

  2. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 290  Solved: 148[Submit][Status ...

  3. LG4718 【模板】Pollard-Rho算法 和 [Cqoi2016]密钥破解

    Pollard-Rho算法 总结了各种卡常技巧的代码: #define int long long typedef __int128 LL; IN int fpow(int a,int b,int m ...

  4. BZOJ 4522: [Cqoi2016]密钥破解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4522 题目:给你RSA密钥的公钥和密文,求私钥和原文,其中\(N=pq\le 2^{62}\),p和 ...

  5. [CQOI2016]密钥破解

    嘟嘟嘟 这题我读了两遍才懂,然后感觉要解什么高次同余方程--然后我又仔细的看了看题,发现只要求得\(p\)和\(q\)就能求出\(r\),继而用exgcd求出\(d\),最后用快速幂求出\(n\). ...

  6. BZOJ 4522: [Cqoi2016]密钥破解 (Pollard-Rho板题)

    Pollard-Rho 模板 板题-没啥说的- 求逆元出来后如果是负的记得加回正数 CODE #include<bits/stdc++.h> using namespace std; ty ...

  7. BZOJ 4522: [Cqoi2016]密钥破解 exgcd+Pollard-Rho

    挺简单的,正好能再复习一遍 $exgcd$~ 按照题意一遍一遍模拟即可,注意一下 $pollard-rho$ 中的细节. #include <ctime> #include <cma ...

  8. LibreOJ2045 - 「CQOI2016」密钥破解

    Portal Description 给出三个正整数\(e,N,c(\leq2^{62})\).已知\(N\)能表示成\(p\cdot q\)的形式,其中\(p,q\)为质数.计算\(r=(p-1)( ...

  9. Visio Premium 2010密钥+破解激活方法

    Visio Premium 2010密钥+破解激活方法: 在安装时能够使用下面密钥: GR24B-GC2XY-KRXRG-2TRJJ-4X7DC VWQ6G-37WBG-J7DJP-CY66Y-V27 ...

随机推荐

  1. 通过UserAgent判断设备为Android、Ios、Pc访问

    public static bool CheckAgent() { bool flag = false; string agent = HttpContext.Current.Request.User ...

  2. C# 多线程防止卡死

    软件界面的响应特性是判断一款软件的非常重要的方面.一般来说,不管你软件功能做得有多么奇妙,如果软件有一点点死机的感觉都会让用户感到很讨厌,甚至怀疑你软件里是否藏有更大的问题. 要提高界面的响应特性,最 ...

  3. 数据结构——动态链表(C++)

    定义一个节点: [cpp] view plain copy   print? #include <iostream> using namespace std; typedef int T; ...

  4. Elasticsearch: Indexing SQL databases. The easy way

    Elasticsearchis a great search engine, flexible, fast and fun. So how can I get started with it? Thi ...

  5. 【ASP.NET Identity系列教程(三)】Identity高级技术

    注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  6. 在Eclipse 中打开当前文件夹

    最近试过好多次,安装插件来 在Eclipse 中打开当前文件所在文件夹,结果总是不甚如意. 烦躁了,决定还是不要使用插件了!!! 1.打开Eclipse,点击菜单栏上的Run--External To ...

  7. maven-腾讯SDK(QQ)接口java引入pom配置

    maven的pom.xml配置 <dependency> <groupId>net.gplatform</groupId> <artifactId>Sd ...

  8. 理解 Java 的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  9. 使用IDEA自带的rest client参数传递乱码问题

     在idea使用rest client(idea自带的访问请求地址工具)调试的时候,有时出现中文会乱码的情况    解决方法如下:   1.打开IDEA安装路径下的bin文件夹里面的idea64.ex ...

  10. Spark 与 MapReduce的区别

    学习参考自 http://spark-internals.books.yourtion.com/markdown/4-shuffleDetails.html 1.  Shuffle read 边 fe ...