HDU-3658-矩阵

专题训练1 矩阵快速幂 题目清单 一些简单的递推式 1.f(n)=a*f(n-1)+b*f(n-2)+c;(a,b,c是常数) (图源网络) 2.f(n)=c^n-f(n-1) ;(c是常数) (图源网络) 3.求等比矩阵的和 求 S=A^1+A^2+..A^n |A  E| |0  E| 其中的A为m阶矩阵,E是单位矩阵,0是零矩阵。                                        ... 阅读详情
#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;
}


【UE 反射】反射的原理是什么?如何使用机制? 静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。 阅读详情

相关推荐

树莓派通过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虽然都是串口通讯,但电器特性不一样,不能直接接!我已经烧掉一个树莓派...

xhydongda的博客 3441

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的差值小于

Summer_via的博客 566

Python自动化生成HyperMesh Tcl命令流:从几何建模到有限元分析

本文详细介绍了如何利用Python自动化生成HyperMesh的Tcl命令流,实现从几何建模到有限元分析的全流程二次开发。通过封装常用操作函数,工程师可以高效完成参数化建模、自动网格划分及求解器文件输出,显著提升CAE前处理效率与标准化水平。

weixin_29041767的博客 423

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

Big大鸟的博客 1831

用Python实现一个简单的远程桌面服务端和客户端

本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行

Hi20240217的博客 1660

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 529

ZOJ 3690 & HDU 3658 (矩阵高速幂+公式递推)

ZOJ 3690 &amp; HDU 3658 (矩阵高速幂+公式递推) ZOJ 3690 题意: 有n个人和m个数和一个k,如今每一个人能够选择一个数。假设相邻的两个人选择同样的数。那么这个数要大于k 求选择方案数。 思路: 打表推了非常久的公式都没推出来什么可行解,好不easy有了想法结果WA到...

weixin_30628077的博客 114

机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达

本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。

cuda7parallel的博客 835

hdu3658(矩阵快速幂)

题意: 给出一个序列的长度; 这个序列只能有A-Z,a-z; 而且要求相邻的字母asiic 码差值小于等于32;而且必须有一个是等于32的; 问有种排列; 思路: 构造一个52  * 52的矩阵,把每个字母后面能跟哪些标为1; 然后矩阵快速幂; 然后再把差值为32的标志为0,在算一次(这样算出来的就是肯定不会有差值等于32的) 两次结果相减; #include

潜水的程序猿 834

安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案

本文主要介绍了安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

YOLO26涨点改进 | 独家创新,特殊场景检测篇 | TGRS 2025 | 引入FAENet特征自适应增强网络,专注于恶劣天气条件下的目标检测(低光场景、雾天场景、雨雪场景、复杂环境等)即插即用

🔥本文提出了一种名为FAENet的特征自适应增强网络,可有效提升YOLO26在恶劣天气条件下的目标检测性能。FAENet通过拉普拉斯金字塔分解思想,将输入特征分为低频和高频两部分进行针对性增强:低频分支强化全局轮廓,高频分支增强边缘纹理细节。该模块设计轻量、可端到端训练,在不改变原始图像分布的前提下,显著缓解雾霾、低照度等复杂环境造成的特征退化问题。实验表明,该方法在多个恶劣天气数据集上超越了当前最优检测器,同时保持了轻量级和高速度特性。

Ai缝合怪、助力小伙伴高效发论文 333

hdu 3658(矩阵快速幂)

题意:一个长度为m的字符串需要填充,填充字母必须是’A’ ~ ‘Z’,’a’ ~ ‘z’,要求字符串相邻字符的ascii值的差值≤32,且必须至少存在一个相邻字符差值等于32。问有多少种填充方式。 题解:直接构造至少存在一个相邻字符差值等于32的不好做,可以逆着想,先求出差值>=32的所有情况,再求出差值<32的所有情况,两个结果相减就是解。#include <stdio.h> #include

俯瞰风景 885

SiC MOSFET 失效机制详解

TDDB 指在相对较低电场(通常接近或略高于器件工作电压)下,长时间施加电压导致介电层(如栅氧化物)逐渐退化并最终击穿的现象。与即时击穿(Immediate Breakdown,由强电场直接引起)不同,TDDB 是时间相关的渐进过程,通常发生在数小时、几天甚至数年之后。核心过程:在 MOSFET 中,栅极与衬底之间施加电压时,电子通过量子隧道效应(Tunneling)注入介电层,形成缺陷或陷阱。这些缺陷积累,最终在介电层中形成导电路径(Conductive Path),导致短路和器件失效。统计特性。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 381

HDU - 3658 How many words 矩阵快速幂

题目大意:要求你填一个含有m个字符的字符串,每个位只能填a-z,A-Z 有两条规则: 1.相邻两个字符的ascii差不能超过32 2.相邻的字符中至少存在一个ascii差为32的解题思路:用所有情况 - 不满足的情况 矩阵表示的话,初始矩阵是1行52列的,每一列表示以某个字符结尾的数量有多少个,变化的矩阵是就可以相应推出了。具体看下代码,B表示变化矩阵#include<cstdio> typ

静静地码 778

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDU 3658

题目链接:HDU3658 题目大意:题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 分析: 挺好想的.我们只要把第一次求出的所有的个数减去“相邻的两个字符的ASCLL码的绝对值小于等于31”的即可. 套个矩阵快速幂板子完事, 就是答案相减的时候注意下可...

qq_40728222的博客 212

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU3658 How many words 矩阵快速幂

HDU3658 How many words 矩阵快速幂

lqdandelion的博客 314

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的方案

缺氧 475

HDU 3658 How many words

HDU_3658     可以用f[i][j]表示第i个字符为j时满足要求(有至少一对相邻的字符的ASC码值之差是32)的合法(任意一对相邻的字符的ASC码值之差都不超过32)字符串个数,g[i][j]表示第i个字符为j时不满足要求但合法的字符串个数。找到递推关系之后构造矩阵并用二分矩阵的方法求解即可。 #include&lt;stdio.h&gt; #include&lt;string...

weixin_33912638的博客 83

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:数据范围太大,没使

执米之手,与米偕老 872

hdu 3658 How many words

点击打开hdu 3658 思路: 递推+矩阵快速幂 分析: 1 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 2 那么不考虑第二个条件的时候,我们可以求出所有的符合的个数。假设f(n)(j)表示的是前n个字符最后一个字符为j,那么我们可以求出所有满足第一个条件的所有...

我是传奇 214

ZOJ 3690 & HDU 3658 (矩阵快速幂+公式递推)

ZOJ 3690题意:有n个人和m个数和一个k,现在每个人可以选择一个数,如果相邻的两个人选择相同的数,那么这个数要大于k 求选择方案数。思路:打表推了很久的公式都没推出来什么可行解,好不容易有了想法结果WA到天荒地老也无法AC。。 于是学习了下正规的做法,恍然大悟。 这道题应该用递推 + 矩阵快速幂。 我们设F(n) = 有n个人,第n个人选择的数大于k的方案数; G(n) = 有n个人

a novice 2783

hdu 3658 How many words dp+矩阵连乘

题意:给定一个整数m(2<=m<=10^9),求符合以下规则的

冷月之殇 946

【ICPC-253】hdu 3658 How many words

点击打开hdu 3658 思路: 递推+矩阵快速幂 分析: 1 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件。第一是相邻的两个字符的ASCLL码的绝对值小于等于32,第二至少要有一对的字符的绝对值为32 2 那么不考虑第二个条件的时候,我们可以求出所有的符合的个数。假设f(n)(j)表示的是前n个字符最后一个字符为j,那么我们可以求出所有满足第一个条件的所有...

藏经阁 | 玄苦 1919

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

努力 644
上一篇: HDU-2852-树状数组+第k小数
下一篇: HDU-3695-ac自动机
walk_up
博客等级 码龄15年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值