题目背景

P哥是一个经常丢密码条的男孩子。

在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码。

题目描述

定义一个串合法,当且仅当串只由A和B构成,且没有连续的3个A。P哥知道,密码就是长度为N的合法字符串数量对192608171926081719260817取模的结果。但是P哥不会算,所以他只能把NNN告诉你,让你来算

至于为什么要对这个数取模,好像是因为纪念某个人,但到底是谁,P哥也不记得了

然而他忘记字符串长度N应该是多少了,于是他准备试M组数据。

输入输出格式

输入格式:

第一行给出一个整数M表示询问次数

接下来M行每行给出一个正整数N,表示该组询问中字符串的长度

输出格式:

对于每一次询问输出一行一个整数表示答案

输入输出样例

输入样例#1:

3
1
3
6

输出样例#1:

2
7
44

说明

样例部分解释:

长度为1时只有"A"和“B“两种排列,都是合法的

长度为3时除了"AAA"是不合法的其他都是可以的,故有23−1种

数据范围

对于20%数据,全部N≤20,M≤2

对于70%数据,全部N≤107

对于100%数据,全部N≤109,M≤10

Solution:

  本题矩阵快速幂。

  还是先打表观察波小数据,

  表:

#include<bits/stdc++.h>
#define ll long long
#define For(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)
using namespace std;
ll cnt,a[100],ans,n;void dfs(int now){if(now>n) {ans++;return;}a[now]=1,dfs(now+1),a[now]=0;if(now<=2||(a[now-2]|a[now-1])) dfs(now+1);
}int main(){while(n<=20) ++n,dfs(1),cout<<ans<<' ',ans=0;return 0;
}

  然后就会发现数列规律:$f[1]=2,f[2]=4,f[3]=7…f[i]=f[i-1]+f[i-2]+f[i-3]$

  于是直接跑矩乘就好了。

代码:

/*Code by 520 -- 10.8*/
#include<bits/stdc++.h>
#define il inline
#define ll long long
#define RE register
#define For(i,a,b) for(RE int (i)=(a);(i)<=(b);(i)++)
#define Bor(i,a,b) for(RE int (i)=(b);(i)>=(a);(i)--)
#define clr(p) memset(&p,0,sizeof(p))
using namespace std;
const int mod=19260817;
struct matrix{int r,c; ll a[3][3];
}ans,tp;il matrix mul(matrix x,matrix y){matrix tp; clr(tp);tp.r=x.r,tp.c=y.c;For(i,0,x.r-1) For(j,0,y.c-1) For(k,0,x.c-1)tp.a[i][j]=(tp.a[i][j]+x.a[i][k]*y.a[k][j]%mod)%mod;return tp;
}int main(){int T;scanf("%d",&T);while(T--){ll n;scanf("%lld",&n);clr(ans),clr(tp);ans.r=1,ans.c=3; tp.r=tp.c=3;ans.a[0][0]=1,ans.a[0][1]=2,ans.a[0][2]=4;tp.a[0][2]=tp.a[1][0]=tp.a[1][2]=tp.a[2][1]=tp.a[2][2]=1;while(n){if(n&1) ans=mul(ans,tp);n>>=1,tp=mul(tp,tp);}printf("%lld\n",ans.a[0][0]);}return 0;
}

转载于:https://www.cnblogs.com/five20/p/9801255.html

P4838 P哥破解密码相关推荐

  1. 【洛谷T37388】P哥破解密码

    原题图: 看到这个题,首先想到的当然是暴力打表找规律了 表: 1 2 2 4 3 7 4 13 5 24 6 44 7 81 8 149 9 274 10 504 11 927 12 1705 13 ...

  2. 在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂「拳无虚发」

    视学算法报道 编辑:张倩.陈萍 加入体感控制,这位小哥破解了原版任天堂的拳击格斗游戏「拳无虚发」. 在经典红白机上玩拳击游戏是很多人的童年回忆,其中就包括任天堂 1987 年发布的拳击格斗游戏--「P ...

  3. Linux 修改SSH 默认端口 22,防止被破解密码

    2019独角兽企业重金招聘Python工程师标准>>> Linux/Unix 系统,很多人使用SSH + 密码来登陆服务器,默认 22端口,这样会有被暴力破解密码的危险(除非密码足够 ...

  4. 在接触到服务器时破解密码、及改ssh端口

    RHEL7系统破解密码: 在RHEL7系统系统过程当中按"E"键进入 找到第一个以linux16开头的字段,按End键跳转至末尾, (空格),输入rd.break console= ...

  5. xen挂载虚拟机分区删除日志 破解密码无所不能

    xen挂载虚拟机分区删除日志 破解密码无所不能 用 virt-manager, virsh 或其他工具可以选择把 KVM 或 Xen HVM 的虚拟机安装在一个镜像文件上,虽然因为性能的关系这种方式不 ...

  6. IBM:破解密码并不是量子计算机主要用途,不必为此担心

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 摩尔定律已逼近极限,算力还能如何增长? 科学家们正在寻找各种替代方法,例如用超导量子处理器,取代现在的传统计算机. IBM.谷歌.微软等公 ...

  7. xen虚拟化实战系列(六)之xen虚拟机破解密码

    xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装 xen虚拟化实战系列(二)之xen虚拟机安装 xen虚拟化实战系列(三)之xen虚拟机复制 xen虚拟化实战系列(四)之 ...

  8. CentOS 6.8 GRUB加密-修复和破解密码实战指南

        CentOS 6.8 GRUB加密和破解密码实战指南 案例1:服务器在公共场合,为了防止随便有人进入单用户破解root密码,先对GRUB引导进行加密,为了更加安全对启动内核时也加密 1.编辑g ...

  9. 破解密码高手王小云教授简介

    王小云教授,1966年生于山东诸城,1983年至1993年就读于山东大学数学系,先后获得学士.硕士和博士学位,导师潘承洞.1993年毕业后留校任教.2005年获国家自然科学基金杰出青年基金资助,同年入 ...

最新文章

  1. 摩尔线程推出首款数据中心级全栈功能GPU:MTT S2000
  2. iOS进程间通信之CFMessagePort
  3. Silverlight教程第四部分:使用 Style 元素更好地封装观感 (木野狐译)
  4. 【人物】雷军去了联想,干货分享全场哑口无言,除了掌声...
  5. 与时代并肩的数字创新者
  6. android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)
  7. 修改NavigationBar的分根线颜色
  8. 工厂支持多数据库开发的三层结构模式随笔(一)
  9. ResNeX论文概述
  10. 基于springboot的客栈(酒店)系统
  11. pycharm控制台打印时显示内容,不用省略号代替
  12. 工商银行在线支付接口
  13. python如何用opencv把一个视频按每10秒一小段切割
  14. ie8安装java提示被阻止_IE8浏览器安装失败的解决方法
  15. 计算机电源测试电压,使用万用表测试电脑电源好坏的方法
  16. c语言程序设计振动合成,C语言课程设计-振动波的合成原理
  17. php 反射执行类方法,PHP的反射类ReflectionClass、ReflectionMethod使用方法
  18. 数据库建表时, 没有成功创建表 No migrations to apply报错原因和解决方法
  19. 如何解决Package ‘zipp’ requires a different Python: 3.5.2 not in '=3.6
  20. 在找工作的过程中,面试一定要经历的逻辑推理题...

热门文章

  1. mysql访问被拒绝1045_mysqlimport:错误:1045,访问被拒绝
  2. java quartz Scheduler 操作Trigger
  3. js 高级 原型对象
  4. Node.js webpack babel
  5. Flink 状态管理
  6. APScheduler Scheduler
  7. 编程语言对比 字符串
  8. javascript RegExp正则表达式
  9. 为ESXi 4.x / 5.x / 6.x / 7.x创建持久暂存位置(1033696)
  10. mysql数据库复制功能配置,最详细的mysql数据库主从复制功能配置教程(docker版本)...