UR 6 破解密码

SOL :

我们发现 ha[i]=ha[i-1]*26-head*26^(len+1)+head

head是指当前把这玩意扔到队尾的东东。就好了。

还有就是考虑没有逆元的情况。

#include<bits/stdc++.h>
#define LL long long
#define N 100007
using namespace std;
int mo,n,h[N],t;
char ans[N];
LL qsm(LL x,LL y=mo-2) {
    static LL anw;
    for (anw=1,x=x%mo;y;y=y>>1,x=x*x%mo) if (y&1) anw=anw*x%mo;
    return anw;
}
int main () {
    scanf("%d %d\n",&n,&mo);
    for (int i=0;i<n;i++)
     scanf("%d",h+i);
    t=qsm(qsm(26,n)-1+mo);
    if (t) {
        for(int t2,j,i=0;i<n;i++) {
            j=(i+1)%n;
            t2=((LL)h[i]*26%mo-h[j]+mo)%mo;
            ans[i]=(LL)t*t2%mo + ‘a‘;
        }
        printf("%s",ans);
    } else  {
        int t1=h[0];
        for(int i=n-1;~i;i--)
            ans[i]=h[0]%26+‘a‘,h[0]/=26;
        printf("%s",ans);
    }
} 

原文地址:https://www.cnblogs.com/rrsb/p/8885508.html

时间: 2024-10-31 09:15:20

UR 6 破解密码的相关文章

Linux_破解密码-营救模式

实验用机:CentOS 5.7 破解密码 设置开机启动界面 系统运行级别 营救模式 一.破解密码 root用户可以更改任何用户的密码,普通用户只能修改自己的密码. 步骤: 1.重新启动系统 2.开机倒数时间内,敲任意键 3.按字母e去编辑 4.选择kernel 开头的行,再次按字母e 编辑 然后敲空格 输入数字1,再敲回车 进入单用户模式,破解密码.(此模式绕过密码验证) 5.按字母键b 去引导进入系统 6.直接passwd 修改root用户的密码 7.输入init 5或者init 3 进入系统

Windows系统忘记密码怎么办?如何破解密码?(亲测可用)

国外有一个工具:LazesoftRecoverMyPassword软件,可用于系统密码破解与清除工具,它可以轻松移除 Windows 系统的登录密码,快速破解与清除电脑开机密码,也可以重置密码或者设置为空密码,解锁被锁定或禁用的用户帐户.其原理就是通过创建一个启动盘来破解Windows开机密码. 所需软件: (1)LazesoftRecoverMyPassword软件 (2)UltraISO软件 具体步骤如下: 1.下载并安装LazesoftRecoverMyPassword软件: 2.生成镜像

mysql数据库破解密码

mysql数据库密码破解大揭秘 rpm包安装的 数据库管理员密码的恢复 首先停止mysql服务, service  mysql  stop service  mysql  start  --skip-grant-table  然后以跳过权限方式后台启动 mysql    执行mysql回车进入mysql,然后修改密码 mysql> Use mysql数据库,然后执行如下命令: 把root用户密码修改为999 update      mysql.user  set  password=passwo

Centos Linux 系统破解密码 &nbsp;

Centos Linux 系统密码破解 本破解使用单用户模式手工破解 使用系统:Centos 5/6 进入开机界面时,按"↓"进入GRUB 界面,如下图所示: 根据提示按"e"编辑,会出现如下图所示: 选择第2选项,继续按"e"编辑,在最后添加"single",如下图所示: 按"Enter"键保存,会自动回到上级界面,按"b"键会自动从单用户模式重启,重启会自动登录到单用户模式,如下图所

windows server2008破解密码不用系统光盘

今天突然想起密码破解这个事,决定把我找出来的办法说一下,不知道老外有没有这么做过!网上搜到的windows server2008破解密码都是需要光盘,但在破解的时候是需要原装的光盘,起初也这么认为,找不到原装光盘只能重装了:后来还是不死心,就决定研究一下,还是有了结果.还是需要工具:一个pe系统(一个ghost系统盘或者PEu盘):接下来进入正题! 1.给机器装上ghost启动盘或者pe U盘/启动盘,设置bios-boot启动项: (在这是用的ghost系统盘),然后F10保存重启. 2.进入

当今破解密码涉及的思路方法总结

破解网络密码-暴力穷举 密码破解技术中最基本的就是暴力破解,也叫密码穷举.如果黑客事先知道了账户号码,如邮件帐号.QQ用户帐号.网上银行账号等,而用户的密码又设置的十分简单,比如用简单的数字组合,黑客使用暴力破解工具很快就可以破解出密码来.因此用户要尽量将密码设置的复杂一些. 破解网络密码-击键记录 如果用户密码较为复杂,那么就难以使用暴力穷举的方式破解,这时黑客往往通过给用户安装木马病毒,设计"击键记录"程序,记录和监听用户的击键操作,然后通过各种方式将记录下来的用户击键内容传送给黑

CentOS7 破解密码

解决方法 CentOS 7.3系统 1. 重启系统后出现以下界面 2.选择GRUB界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入"e" 进入以下界面 3. 在GRUB界面使用向下方向键移动到linux16行 4. 在此行行尾键入"init=/bin/sh"  使用组合键ctrl x启动        5. 由于/目录文件系统是只读,需要重新挂载/目录 6.关闭selinux vim /etc/sysconfig/selinxu SELINUX=d

python 暴力破解密码脚本

以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支持 无限次的密码尝试 假设testUser 的密码为 6位的纯数字 1:先长成 6位纯数字密码字典 import os pds=[] rg=range(0,10) for first in rg: for second in rg: for three in rg: for four in rg: for five in rg:

【Linux系统】教您如何破解密码及防护

对于windows系统的密码破解只需做一个PE盘,然后进入boot启动项并从u盘启动即可去破解(一般百度都有这些详细的步骤).而现在我教大家的是如何破解Linux系统的密码.首先我用一台装有Linux6.5系统的虚拟机来实验.在不知Linux系统密码或在忘记Linux密码的情况下,开启系统,在开启系统时按ESC键进入如图所示的界面.通过如下提示按e键进入. 选择第二个在按e键进入,然后空格输入single后再回车.安b键启动. 在这里输入新的密码,这样密码就破解好了.虽然很简单但是如果做一些防护