#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 1009;
const double esp = 1e-6;
const __int64 mod = 1000000007;
struct ju
{
__int64 x[104][104];
void init()
{
memset(x, 0, sizeof(x));
}
}tmp, ans;
ju mul(ju a, ju b)
{
ju c;
c.init();
for(int i=0; i<104; i++)
for(int j=0; j<104; j++)
{
for(int k=0; k<104; k++)
if(a.x[i][k] && b.x[k][j])
{
c.x[i][j] += a.x[i][k]*b.x[k][j];
c.x[i][j] %= mod;
}
}
return c;
}
void solve(int n)
{
while(n)
{
//cout<<n<<endl;
if(n&1) ans = mul(tmp, ans);
tmp = mul(tmp, tmp);
n/=2;
}
__int64 res = 0;
for(int i=0; i<52; i++)
//for(int j=0; j<52; j++)
res = (res+ans.x[i][0])%mod;
printf("%I64d\n", res);
}
int main()
{
int t, n;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
tmp.init();
ans.init();
for(int i = 52; i < 104; i ++)
ans.x[i][0] = 1;
for(int i = 0; i < 26; i ++)
{
for(int j = 0; j <= 26 + i; j ++)
tmp.x[i][j] = 1;
tmp.x[i][i + 78] = 1;
}
for(int i = 0; i < 26; i ++)
{
for(int j = i; j < 52; j ++)
tmp.x[i + 26][j] = 1;
tmp.x[i + 26][i + 52] = 1;
}
for(int i = 0; i < 26; i ++)
for(int j = 52; j < 78 + i; j ++)
tmp.x[i + 52][j] = 1;
for(int i = 0; i < 26; i ++)
for(int j = 52 + i + 1; j < 104; j ++)
tmp.x[i + 78][j] = 1;
solve(n-1);
}
return 0;
}
相关推荐
树莓派通过TTL3.3转485 Modbus采集水表
所需道具 树莓派0,我用的是树莓派zero wh; 具有光电直读功能的有线水表,我用的是咸鱼淘的埃美柯LXSY-20E1; TTL3.3 转 485模块,带隔离的贵些; 5V转12V升压模块。 原理 树莓派有UART(GPIO14 Tx 和 GPIO15 Rx)串口通讯功能,电器特性是3.3V TTL,直读远传水表支持M-Bus/485通讯接口,我买的光电直读水表485要求12V供电(根据仪表厂家说明书)。TTL和485虽然都是串口通讯,但电器特性不一样,不能直接接!我已经烧掉一个树莓派...
hdu 3658 HDU 3658 How many words(矩阵快速幂)
hdu 3658 HDU 3658 How many words(矩阵快速幂)题意长为m的单词,要求相邻字母的ascii码值相差小于等于32且至少有一对相邻的字母,码值相差恰好为32,求这样的单词有多少个,其中m<1e9。解题思路:f(i,j)f(i,j)表示长为i,以j为结尾字母且所有相邻单词之差小于32的单词个数,f(i,j)=∑f(i,k)f(i,j)=\sum f(i,k)(k与j的差值小于
Python自动化生成HyperMesh Tcl命令流:从几何建模到有限元分析
本文详细介绍了如何利用Python自动化生成HyperMesh的Tcl命令流,实现从几何建模到有限元分析的全流程二次开发。通过封装常用操作函数,工程师可以高效完成参数化建模、自动网格划分及求解器文件输出,显著提升CAE前处理效率与标准化水平。
hdu3658 How many words 矩阵递推分析
点击HDU3658 分析: 题目有两个条件:1.所选的字符串中任意两个相邻字符的ascll码差值不超过32 2.至少存在一对相邻的的字符ascll码差值等于32. 看到这里需要注意一点。题目说的是ascll码差值不超过32就行,所以只要是32以内的都行。例如,字符b相邻的可以是a~z还要加上B~Z,但是对于字符B来说,就只有A~Z加 上a,b. 所一可以求出所有的满足条件1
用Python实现一个简单的远程桌面服务端和客户端
本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行
CANoe软件之离线报文回放与分析实战
本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。
ZOJ 3690 & HDU 3658 (矩阵高速幂+公式递推)
ZOJ 3690 & HDU 3658 (矩阵高速幂+公式递推) ZOJ 3690 题意: 有n个人和m个数和一个k,如今每一个人能够选择一个数。假设相邻的两个人选择同样的数。那么这个数要大于k 求选择方案数。 思路: 打表推了非常久的公式都没推出来什么可行解,好不easy有了想法结果WA到...
机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达
本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。
hdu3658(矩阵快速幂)
题意: 给出一个序列的长度; 这个序列只能有A-Z,a-z; 而且要求相邻的字母asiic 码差值小于等于32;而且必须有一个是等于32的; 问有种排列; 思路: 构造一个52 * 52的矩阵,把每个字母后面能跟哪些标为1; 然后矩阵快速幂; 然后再把差值为32的标志为0,在算一次(这样算出来的就是肯定不会有差值等于32的) 两次结果相减; #include
安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案
本文主要介绍了安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案
YOLO26涨点改进 | 独家创新,特殊场景检测篇 | TGRS 2025 | 引入FAENet特征自适应增强网络,专注于恶劣天气条件下的目标检测(低光场景、雾天场景、雨雪场景、复杂环境等)即插即用
🔥本文提出了一种名为FAENet的特征自适应增强网络,可有效提升YOLO26在恶劣天气条件下的目标检测性能。FAENet通过拉普拉斯金字塔分解思想,将输入特征分为低频和高频两部分进行针对性增强:低频分支强化全局轮廓,高频分支增强边缘纹理细节。该模块设计轻量、可端到端训练,在不改变原始图像分布的前提下,显著缓解雾霾、低照度等复杂环境造成的特征退化问题。实验表明,该方法在多个恶劣天气数据集上超越了当前最优检测器,同时保持了轻量级和高速度特性。
hdu 3658(矩阵快速幂)
题意:一个长度为m的字符串需要填充,填充字母必须是’A’ ~ ‘Z’,’a’ ~ ‘z’,要求字符串相邻字符的ascii值的差值≤32,且必须至少存在一个相邻字符差值等于32。问有多少种填充方式。 题解:直接构造至少存在一个相邻字符差值等于32的不好做,可以逆着想,先求出差值>=32的所有情况,再求出差值<32的所有情况,两个结果相减就是解。#include <stdio.h> #include
SiC MOSFET 失效机制详解
TDDB 指在相对较低电场(通常接近或略高于器件工作电压)下,长时间施加电压导致介电层(如栅氧化物)逐渐退化并最终击穿的现象。与即时击穿(Immediate Breakdown,由强电场直接引起)不同,TDDB 是时间相关的渐进过程,通常发生在数小时、几天甚至数年之后。核心过程:在 MOSFET 中,栅极与衬底之间施加电压时,电子通过量子隧道效应(Tunneling)注入介电层,形成缺陷或陷阱。这些缺陷积累,最终在介电层中形成导电路径(Conductive Path),导致短路和器件失效。统计特性。
HDU - 3658 How many words 矩阵快速幂
题目大意:要求你填一个含有m个字符的字符串,每个位只能填a-z,A-Z 有两条规则: 1.相邻两个字符的ascii差不能超过32 2.相邻的字符中至少存在一个ascii差为32的解题思路:用所有情况 - 不满足的情况 矩阵表示的话,初始矩阵是1行52列的,每一列表示以某个字符结尾的数量有多少个,变化的矩阵是就可以相应推出了。具体看下代码,B表示变化矩阵#include<cstdio> typ
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
HDU 3658
题目链接:HDU3658 题目大意:题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 分析: 挺好想的.我们只要把第一次求出的所有的个数减去“相邻的两个字符的ASCLL码的绝对值小于等于31”的即可. 套个矩阵快速幂板子完事, 就是答案相减的时候注意下可...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
HDU3658 How many words 矩阵快速幂
HDU3658 How many words 矩阵快速幂
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
hdu3658 How many words 矩阵快速幂 + dp
http://acm.hdu.edu.cn/showproblem.php?pid=3658 问题: 在52个英文字母里面选择m个字母组成一个字符串。 满足以下两个条件: 一、相邻的两个字符的ASCLL码的绝对值小于等于32(比如说X与x的码值差为32); 二、至少要有一对的字符的绝对值为32。 设置F(32,len)表示 长度为len,相邻字符间隔不超过32的方案
HDU 3658 How many words
HDU_3658 可以用f[i][j]表示第i个字符为j时满足要求(有至少一对相邻的字符的ASC码值之差是32)的合法(任意一对相邻的字符的ASC码值之差都不超过32)字符串个数,g[i][j]表示第i个字符为j时不满足要求但合法的字符串个数。找到递推关系之后构造矩阵并用二分矩阵的方法求解即可。 #include<stdio.h> #include<string...
hdu3658 递推 矩阵快速幂
解题报告 题目 :http://acm.hdu.edu.cn/showproblem.php?pid=3658 算法 :递推 + 矩阵快速幂 思路 :很明显的递推+矩阵快速幂的题,但比赛是确没写出来,主要有两个原因: 1:设定状态为f[m][k][0] 和 f[m][k][1]表是长度为m以k结尾的个数[0]表示不含差值为32的,[1]表示含差值为32的 2:数据范围太大,没使
hdu 3658 How many words
点击打开hdu 3658 思路: 递推+矩阵快速幂 分析: 1 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 2 那么不考虑第二个条件的时候,我们可以求出所有的符合的个数。假设f(n)(j)表示的是前n个字符最后一个字符为j,那么我们可以求出所有满足第一个条件的所有...
ZOJ 3690 & HDU 3658 (矩阵快速幂+公式递推)
ZOJ 3690题意:有n个人和m个数和一个k,现在每个人可以选择一个数,如果相邻的两个人选择相同的数,那么这个数要大于k 求选择方案数。思路:打表推了很久的公式都没推出来什么可行解,好不容易有了想法结果WA到天荒地老也无法AC。。 于是学习了下正规的做法,恍然大悟。 这道题应该用递推 + 矩阵快速幂。 我们设F(n) = 有n个人,第n个人选择的数大于k的方案数; G(n) = 有n个人
hdu 3658 How many words dp+矩阵连乘
题意:给定一个整数m(2<=m<=10^9),求符合以下规则的
【ICPC-253】hdu 3658 How many words
点击打开hdu 3658 思路: 递推+矩阵快速幂 分析: 1 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 2 那么不考虑第二个条件的时候,我们可以求出所有的符合的个数。假设f(n)(j)表示的是前n个字符最后一个字符为j,那么我们可以求出所有满足第一个条件的所有...
HDU 3658 How many words (矩阵快速幂&递推)
In order to make a new word, we will pick out m letters from all the upper case letters and lower case letters(from `a' to `Z'). Therefore, that means you can pick some same letters. But here are two
3441



被折叠的 条评论
为什么被折叠?



