[洛谷P4838]P哥破解密码】的更多相关文章

矩阵乘法 + 快速幂优化递推: 看到这个题目我们不难想到递推,题干中说3个连续的A出现在序列中是不合法的,所以可以分为三种情况: (1):序列前只有一个A,如:BA,BBA,BABA. (2):序列前有两个A,如:BAA,BBAA,BABAA. (3):序列前没有A而是B,如:BB,AB,AABAAB. 我们将这三种情况分别用 a1 , a2 , b 表示. // a1:1 1 2 4 7 13 24 44 81 149 274 // a2:0 1 1 2 4 7 13 24 44 81 149…
题目大意:求长度为$n$的$01$串中,没有连续至少$3$个$1$的串的个数 题解:令$a_1$为结尾一个$1$的串个数,$a_2$为结尾两个$1$的串的个数,$b$为结尾是$0$的串的个数.$a_1=b,a_2=a_1,b=a_1+a_2+b$. 卡点:无 C++ Code: #include <cstdio> const int mod = 19260817; int Tim, n; inline void up(int &a, int b) {if ((a += b) >=…
题目背景 P哥是一个经常丢密码条的男孩子. 在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码. 题目描述 定义一个串合法,当且仅当串只由A和B构成,且没有连续的3个A.P哥知道,密码就是长度为N的合法字符串数量对192608171926081719260817取模的结果.但是P哥不会算,所以他只能把NNN告诉你,让你来算 至于为什么要对这个数取模,好像是因为纪念某个人,但到底是谁,P哥也不记得了 然而他忘记字符…
题目背景 P哥是一个经常丢密码条的男孩子. 在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码. 题目描述 定义一个串合法,当且仅当串只由A和B构成,且没有连续的3个A.P哥知道,密码就是长度为N的合法字符串数量对19260817取模的结果.但是P哥不会算,所以他只能把N告诉你,让你来算 至于为什么要对这个数取模,好像是因为纪念某个人,但到底是谁,P哥也不记得了 然而他忘记字符串长度N应该是多少了,于是他准备试M…
原题传送门 考虑一个一个将字母加入字符串后面 设\(f[i][0/1/2]\)表示长度为\(i\)字符串末尾有\(0/1/2\)个A的种类数 易知: \(f[1][0]=1,f[1][1]=1,f[1][2]=0\) \(f[i][0]=f[i-1][0]+f[i-1][1]+f[i-1][2]\) \(f[i][1]=f[i-1][0]\) \(f[i][2]=f[i-1][1]\) 发现这个递推式子珂以用矩阵乘法 \[ \left[ \begin{matrix} f[i][0] & f[i]…
原题图: 看到这个题,首先想到的当然是暴力打表找规律了 表: 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 3136 14 5768 15 10609 发现上下两个数近似于2倍关系,但f[i-1]*2略大于f[i] 用f[i-1]*2-f[i],发现恰好等于f[i-4] 于是就有了递推式:f[i]=f[i-1]*2-f[i-4] 矩阵加速即可 矩阵加速的方法: 我们有一个4*4的矩阵A和一个向量c[13,…
P2380 狗哥采矿 题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).问最多能采到多少矿? 输入输出格式 输入格式: 第一行包含两个整数n,m,( 1 ≤ n ≤ 500, 1 ≤ m ≤ 500).接下来n行m列,表示每个…
P2383 狗哥玩木棒 题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”. 输入输出样例 输入样例#1: 3 4…
题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).问最多能采到多少矿? 输入输出格式 输入格式: 第一行包含两个整数n,m,( 1 ≤ n ≤ 500, 1 ≤ m ≤ 500).接下来n行m列,表示每个格子中可以传送到yey…
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”. 输入输出样例 输入样例#1: 3 4 1 1 1 1 5 10…