【poj2417】Discrete Logging

【无标题】 Python自动化法律文书撰写 Jinja2是一个功能强大的模板引擎,支持丰富的语法和功能。除了条件判断和循环语句外,Jinja2还支持过滤器、宏、继承等高级特性,非常适合处理复杂的文书模板。 阅读详情

Time Limit: 5000MS Memory Limit: 65536K

Description

Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 <= N < P, compute the discrete logarithm of N, base B,modulo P. That is, find an integer L such that B^L == N (mod P)

Input

Read several lines of input, each containing P,B,N separated by a space.

Output

For each line print the logarithm on a separate line. If there are several, print the smallest; if there is none, print “no solution”.

Sample Input

5 2 1
5 2 2
5 2 3
5 2 4
5 3 1
5 3 2
5 3 3
5 3 4
5 4 1
5 4 2
5 4 3
5 4 4
12345701 2 1111111
1111111121 65537 1111111111

Sample Output

0
1
3
2
0
3
1
2
0
no solution
no solution
1
9584351
462803587

Solution

一道BSGS模板题啦,留作纪念……

Code

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const ll mod=76543;
ll P,B,N,ans,top,hs[mod],id[mod],Last[mod],Next[mod];
void Insert(ll x,ll y)
{
    ll z=x%mod;
    hs[++top]=x,id[top]=y,Next[top]=Last[z],Last[z]=top;
}
ll Find(ll x)
{
    ll z=x%mod;
    for(ll i=Last[z];i;i=Next[i])
        if(hs[i]==x) return id[i];
    return -1;
}
ll BSGS(ll a,ll b,ll c)
{
    if(b==1) return 0;
    ll m=ceil(sqrt(c)),j=1,t=1,k;
    for(ll i=0;i<m;i++,j=j*a%c) Insert(j*b%c,i);
    for(ll i=m;i<=c;i+=m)
        if(~(k=Find(t=t*j%c))) return i-k;
    return -1;
}
int main()
{
    while(~scanf("%lld%lld%lld",&P,&B,&N))
    {
        top=0,memset(Last,0,sizeof(Last));
        ans=BSGS(B,N,P);
        if(~ans) printf("%lld\n",ans);
        else puts("no solution");
    }
    return 0;
}
QT实现MQTT服务端(附完整源码) 阅读详情

相关推荐

LabVIEW QMH模板实战:从创建到错误处理的完整指南

本文提供LabVIEW QMH模板从创建到错误处理的完整实战指南。详细解析了队列消息处理器(QMH)作为LabVIEW核心设计模式如何实现任务解耦与异步通信,涵盖事件处理循环、消息处理循环的搭建、用户事件创建、队列引用管理、消息优先级控制以及健壮的错误处理机制,帮助开发者构建稳定、可维护的复杂应用程序。

white的博客 726

POJ 2417 Discrete Logging 离散对数

链接:http://poj.org/problem?id=2417 题意: 思路:求离散对数,Baby Step Giant Step算法基本应用。 以下转载自:AekdyCoin 【普通Baby Step Giant Step】 【问题模型】 求解 A^x = B (mod C) 中 0 【思路】 我们可以做一个等价 x = i * m + j  ( 0 而

看曙光 1133

PLS-PM with R 偏最小二乘路径建模 (R语言)

1. 引入 1.1. 安装plspm包 plspm 是一个用于执行偏最小二乘路径建模分析的 r 程序包。 在 CRAN 上可以免费下载: Http://cran.r-project.org/web/packages/plspm/index.html. 此后,通过以下代码在r中安装并加载该程序包即可。 install.packages("plspm") library("plspm") 2. 一些简单概念 2.1. 潜变量和观测变量 不少变量如满意度、成功指数是无法通过观测得到

Wowlittlemoon的博客 1万+

Discrete Logging(POJ-2417)

Problem Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 <= N < P, compute the discrete logarithm of N, base B, modulo P. That is, find an i...

Alex_McAvoy的博客 378

[pytorch] MedicalNet 3D Resnet预训练模型迁移学习实战:从分割到分类的代码改造

本文详细介绍了如何利用PyTorch对MedicalNet 3D ResNet预训练模型进行迁移学习,从分割任务改造为分类任务。通过解析模型结构、调整分类头、加载预训练权重及优化训练策略,帮助开发者在医疗影像领域快速实现高效模型部署。文章还涵盖了数据预处理、增强技巧及模型轻量化等实用内容。

kmeans3miner的博客 246

3D打印机之Marlin固件配置

一、Marlin固件必要配置 打开Configuration.h文件,使用VS code的搜索功能来修改下面的参数。 配置波特率 #define BAUDRATE 250000 配置串口波特率,一般不修改。上位机的波特率要和这个一致才能正常通讯。 2. 配置主板类型 第 134 行 #define MOTHERBOARD BOARD_MKS_GEN_L 找到 boards.h 这个文件打开,就可以看到支持的主板类型。3d打印机主控板类型非常多,每个板子硬件连接都可能不同,所以这个参数必须要跟你自己的板子

acktomas的博客 2万+

poj 2417 Discrete Logging 求解模方程a^x=b(mod n),n为素数+模板题(baby_step giant_step)

#include #include #include #include #include #include using namespace std; #define LL long long //快速幂求a^b LL pow_mod(LL a,LL b,LL n) { LL s=1; while(b) { if(b&1)

冷月之殇 3423

保姆级教程:在RK3576上配置USB网卡从零到外网访问(附udev规则详解)

本文提供了在RK3576开发板上配置USB网卡的完整教程,涵盖从内核驱动、udev规则到网络路由的全流程。重点讲解了如何利用USB Gadget功能实现高速网络连接,并构建稳定的算力集群,确保多设备间通信及外网访问。

grass的博客 460

【POJ2417】Discrete Logging

                                             Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 8751   Accepted: 3600 Description Given a prime P, 2 &lt;= ...

ETO的博客 317

广工计组f4b 8位12指令微程序CPU设计实验报告(内含可通过代码以及波形图)

实验目的:模型机是计算机的缩细模型,通过它可以理解计算机整机的结构和功能,理解CPU,存储器,中断控制器,接口的结构及实现逻辑和各部件之前的接口关系。本实验是设计一个8位模型计算机。:一条机器指令可以分解成一个微操作序列,这些微操作是计算机最基本的,不可再细分的操作。:在微程序控制的计算机中。将控制部件向执行部件发出的各种控制命令成为微命令,它是构成控制序列的最小单位。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作微命令的执行过程。2.:微指令是若干微命令的集合。

weixin_63692154的博客 4705

配置 SAP Web Dispatcher 的实战指南:打通 SAP Fiori、SAP Gateway 与前端系统的关键一跳

SAP Web Dispatcher 在 Fiori 架构中扮演关键角色,作为统一入口处理 HTTPS 请求、实现安全代理和流量分发。它将分散在不同系统的访问路径统一收口,解决浏览器同源策略限制,集中管理 HTTPS 终止和客户端信息传递。典型配置中,Web Dispatcher 监听 443 端口,根据路径将 OData 请求转发至 Gateway 系统,静态资源请求送至前端服务器。SSL 相关配置(如 PSE 文件)确保安全通信,而路由规则(wdisp/system_xx)决定请求转发目标。实施时需注意

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 103

Discrete Logging

Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5865   Accepted: 2618 Description Given a prime P, 2 &lt;= P &lt; 231, an integer B, 2 &lt;= B...

weixin_33814685的博客 177

《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 768

poj2417 Discrete Logging (计算离散对数)

Given a prime P, 2 31, an integer B, 2 BL == N (mod P) Input Read several lines of input, each containing P,B,N separated by a space. Output For each line print the logarithm on a sepa

樱花满地集于我心,楪舞纷飞祈愿相随 503

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

POJ 2417 Discrete Logging BSGS

Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4011   Accepted: 1849 Description Given a prime P, 2 31, an integer B, 2 BL == N (mo

码代码的猿猿 919

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

POJ2417 Discrete Logging

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description Given a prime P, 2 <= P < 231...

dgoh41514的博客 162

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[POJ2417]Discrete Logging

离散对数裸题,给定a,b,p,求 a^x=b(mod p) 其中p为质数.经典的Baby-Step-Giant-Step算法.p为非质数时也能做,不过没找到类似的题- -

Zvezda_的博客 1398

POJ 2417 Discrete Logging

解高次同余方程 BSGS算法   具体算法BSGS↑,就说一点实际解决中的问题 1. 时间复杂度分析——选择用MAP(STL)的时候就已经是在TLE的边缘试探了   这道题做的...提交了很多遍都是超时...无奈地看了下Problem Status...发现手写的hash速度不到用map的百分之一...可以说,如果选择用map...就相当于是在超时的边缘试探了...下面两个使用ma...

101

【POJ 2417】 Discrete Logging

【题目链接】 http://poj.org/problem?id=2417 【算法】 Baby-Step,Giant-Step算法 【代码】 #include <algorithm> #include <bitset> #include <cctype&gt...

120

poj2417 Discrete Logging

离散对数,BSGS

YHaX的博客 452

POJ 2417 Discrete Logging【大步小步

裸的BSGS 顺便BSGS真的不用求逆元,既然可以设x=ka+b,不如直接设成x=ka-b,乘到那边就完事了 不用求但是还是要用到逆元的思想 以上 #include #include #include #include #include #include #include using namespace std; long long B,N,P; long long mult(lo

Flaze_的博客 547

POJ 2417 Discrete Logging【BSGS】【离散对数】

题目链接:http://poj.org/problem?id=2417 AC代码: #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<algorithm> #include<queue> #include<map&...

weixin_43499182的博客 263

POJ 2417 Discrete Logging [BSGS算法]

POJ 2417 Discrete Logging Description Given a prime P, 2 &lt;= P &lt; 231, an integer B, 2 &lt;= B &lt; P, and an integer N, 1 &lt;= N &lt; P, compute the discrete logarithm of N, base B, modulo P. ...

Janice_zh的博客 247
上一篇: 【BJOI2017】魔法咒语
下一篇: 【poj3243】Clever Y
StrideTG
博客等级 码龄9年 4粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值