灵魂滚烫, 命运冰凉|

fhq_treap

园龄:5年7个月粉丝:67关注:21

[TJOI2007] 可爱的质数

题意

求最小的x满足axbmodp

想法

这个是标准的板子题,BSGS算法可以用来解决axbmodpxabmodp问题
本题是前者

我们考虑这样 aApBbmodp

aApbaBmodp
其中(A,B<p
我们先枚举B统计出baB的答案用hashmap给存下来
再枚举A统计答案即可

代码(与想法里的字符不同)

#include<iostream>
#include<cstdio>
#include<map>
#include<cmath>
#define ll long long

using std::map;

ll a,b,p;
ll A,B,minn = 0x3f3f3f3f;

map<ll,ll>QWQ;

ll ans[1000],cnt;

int main(){
	scanf("%lld%lld%lld",&p,&a,&b);//5 2 3 2 ^ x == 3 (mod 5)
	ll s = ceil(sqrt(p));
	if(a % p == 0){
		puts("no solution");
		return 0;
	}
	QWQ[s] = 0;
	B = b,A = 1;
	for(int i = 1;i <= s;++i){
		B = (B * a) % p;
		A = (A * a) % p;
		QWQ[B] = i;
	} 
	ll now = 1;
	for(int i = 1;i <= s;++i){
		now = (now * A) % p;
		if(QWQ[now]){
			std::cout<<(i * s - QWQ[now] + 2 * p) % p<<std::endl;
			return 0;
		}
	}
	puts("no solution");
}

本文作者:fhq_treap

本文链接:https://www.cnblogs.com/dixiao/p/14245921.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   fhq_treap  阅读(80)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起