[JLOI2015]有意义的字符串(数学+矩阵乘法)

洛谷 P3263 [JLOI2015]有意义的字符串 B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求⌊((b+sqrt(d))/2)^n⌋mod p其中p=7528443412579576937 阅读详情

Description:

这里写图片描述

题解:

这个数学题真的是欺负我这种初中傻逼选手,特征方程是个蛤?

看到这个式子想到了共轭根式:

先求:

(b+d√2)n+(b−d√2)n(b+d2)n+(b−d2)n

据说这个一定是个整数,为什么见数据范围。

这个还可以递推,由前两项推出,知道系数就可以矩阵乘法。

只是系数是什么?

这个怎么推?也许可以用特征方程逆推,散了散了,还是记个结论吧:

an+bn=(an−1+bn−1)∗(a+b)−(an−2+bn−2)∗aban+bn=(an−1+bn−1)∗(a+b)−(an−2+bn−2)∗ab

共轭根式的优美性质+数据约束使系数是整数……

(b+d√2)n=Ans−(b−d√2)n(b+d2)n=Ans−(b−d2)n

由于数据约束,(b−d√2)n∈[−1..1](b−d2)n∈[−1..1]

如果它是正数,Ans-1才是真正的答案。

它是正数的条件是b≠d−−√b≠d且n mod 2=1n mod 2=1。

Code:

#include<cmath>
#include<cstdio>
#define ld long double
#define ul unsigned long long
#define fo(i, x, y) for(int i = x; i <= y; i ++)
using namespace std;

const ul mo = 7528443412579576937;

ul ksj(ul x, ul y) {
    ul s = 0;
    for(; y; y /= 2, x = x * 2 % mo)
        if(y & 1) s = (s + x) % mo;
    return s;
}

ul b, d, n, ans;

struct node {
    ul a[2][2];
} a, c, e, li;

void mul(node &a, node b) {
    fo(i, 0, 1) fo(j, 0, 1) li.a[i][j] = 0;
    fo(k, 0, 1) fo(i, 0, 1) fo(j, 0, 1)
        li.a[i][j] = (li.a[i][j] +ksj(a.a[i][k], b.a[k][j])) % mo;
    a = li;
}

int main() {
    freopen("jxamfe.in", "r", stdin);
    freopen("jxamfe.out", "w", stdout);
    scanf("%llu %llu %llu", &b, &d, &n); ul n0 = n;
    if(n == 0) {printf("1"); return 0;}
    a.a[0][0] = 2; a.a[0][1] = b;
    c.a[0][1] = (d - ksj(b, b) + mo) % mo / 4; c.a[1][1] = b;
    c.a[1][0] = 1;
    n --;
    for(; n; n /= 2) {
        if(n & 1) mul(a, c);
        e = c; mul(c, e);
    }
    ans = a.a[0][1];
    ul g = sqrt(d * 1.0);
    if(!(g == b && (g * g == d)) && n0 % 2 == 0) 
        ans = (ans - 1 + mo) % mo;
    printf("%llu", ans);
}
RK3588与FPGA高速PCIe通信:从理论带宽到实战优化的全流程解析 本文深入解析了瑞芯微RK3588与FPGA之间基于PCIe Gen2的高速通信全流程。从理论带宽计算(约1640MB/s)出发,详细拆解了硬件连接、驱动加载、DMA配置等关键步骤,并重点分享了中断优化、内存管理及高级调优等实战技巧,旨在帮助开发者从“跑通”到“跑好”,实现接近理论极限的稳定高效数据传输。 阅读详情

相关推荐

大模型-CLIP 详细介绍

最先进的计算机视觉系统通常被训练来预测一组预定义的对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为要指定任何其他视觉概念,就需要额外的标注数据。比如,它们可以识别“猫”、“狗”、“汽车”等。但是,这种做法有一个明显的局限性:如果你想让系统识别一个新的类别,比如说“独角兽”,你就必须提供大量带有“独角兽”标签的图片来训练系统。这不仅耗时费力,而且限制了系统的灵活性和广泛适用性。直接从原始文本中学习关于图像的信息是一种很有前途的替代方案,因为它利用了更广泛的监督来源。

晓的博客 9719

JLOI2015有意义的字符串

JLOI有意义的字符串

不念过去,不畏将来 1111

YALMIP介绍及怎么在Matlab中加YALMIP、SDPT3

目录YALMIP简介怎么在Matlab中加YALMIP?1. 创建决策变量:2. 添加约束:3. 参数配置4. 求解怎么在MatlabR2019a中加YALMIP?1.下载工具包2.放置工具包3.添加路径4.测试安装结果怎么在MatlabR2019a中加SDPT3? YALMIP简介 怎么在Matlab中加YALMIP? yalmip是一位“集大成者”,它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划)、bintprog(二值线性规划)、bnb(分支界定算法)等,他还提供了对cpl

m0_51431440的博客 2万+

【bzoj4002】有意义的字符串

Portal --> bzoj4002 Solution ​  虽然说这题有点强行但是感觉还是挺妙的,给你通项让你反推数列的这种==有点毒 ​​  补档时间 ​  首先有一个东西叫做特征方程,我们可以用这个东西来求二阶线性递推数列的通项: ​​  对于数列\(\{x_n\}\),递推公式为\(x_n=a_1x_{n-1}-a_2x_{n-2}\),那么这个数列的特征方程为: \[ x^2-a...

weixin_30388677的博客 187

Cadence17.4 Allegro PCB制板(gerber / 光绘)文件输出的顺序及注意点

Cadence Allegro PCB制板文件输出 (gerber 光绘文件输出)

weixin_45331044的博客 1万+

中国裁判文书网案例批量爬取

本文介绍了某法院网站数据采集的技术研究过程,主要包含JS逆向分析和数据解密方法。通过开发者工具分析发现页面数据经过加密处理,重点研究了ciphertext等加密参数的生成逻辑。文章详细记录了定位加密函数、扣取加密代码、解密数据处理的全流程,并验证了解密方法的有效性。研究过程中强调了技术使用的法律边界,明确声明仅用于合法技术研究,禁止任何非法数据爬取行为。最终实现了加密数据的成功解密,并解释了各请求参数的作用,为后续数据清洗和存储奠定了基础。

2303_80825459的博客 816

【BZOJ】【4002】【JLOI2015】有意义的字符串

构造线性递推式+矩阵乘法   题解戳PoPoQQQ    为了自己以后看的方便手打一遍好了>_>   求$( \frac{b+\sqrt{d}}{2} )^n$的整数部分对p取模后的值   其中$b\mod 2=1,d\mod 4=1,b^2 \leq d<(b+1)^2,n\leq10^{18}$ 思路: 构造数列$a_n=b*a_{n-1}+\frac...

weixin_30488085的博客 197

从设计到实战:手把手教你用SolidWorks完成一个简易离心泵叶轮的水力设计全流程

本文详细介绍了使用SolidWorks进行简易离心泵叶轮水力设计的全流程,涵盖参数计算、水力设计和三维建模等关键步骤。通过实际案例演示,帮助机械设计工程师和学生掌握从理论到实践的转化技巧,特别适合低比转速离心泵叶轮的设计需求。

weixin_30621711的博客 233

【BZOJ4002】【JLOI2015】有意义的字符串 推公式+矩阵乘法

题解: 公式推导部分:见大爷博客http://blog.csdn.net/popoqqq/article/details/45148309 公式: fi=b×fi−1+ (d−b2)4ai−2 f_i=b \times f_{i-1}+\frac {~(d-b^2)} {4}a_{i-2} f0=2,f1=b f_0=2,f_1=b 矩阵: ⎡⎣⎢fi 0 fi−10⎤⎦⎥= ⎡⎣⎢f

辗转山河弋流歌 1864

CARLA仿真:自定义地图与AI车辆行为编程

CARLA仿真:自定义地图与AI车辆行为编程 ,人工智能,计算机视觉,大模型,AI,本文围绕CARLA仿真平台,介绍了其基础功能与安装方法,详解地图系统,包括预设地图的加载切换及自定义地图的创建、导入与优化。还阐述了AI车辆的创建、属性设置、销毁,以及行为控制,如交通规则遵守、路径规划、复杂行为编程和行为树应用。同时涉及传感器与车辆感知、交通场景构建、自定义地图与AI行为结合应用、高级应用,以及常见问题解决方案和学习资源,为CARLA仿真应用提供全面指导。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 11万+

【unity实战】Cinemachine虚拟相机实战,使用InputSystem+Cinemachine+CharacterController复刻各种主流游戏的相机控制

这里主要是探讨如何使用InputSystem+Cinemachine+CharacterController复刻各种主流游戏的相机控制,我们主要专注Cinemachine实战效果,所以并不会深入讨论Cinemachine和CharacterController比较细节的参数介绍。注意:前面为了测试方便,我还是先用的旧的输入系统代替InputSystem【推荐100个unity插件之10】Unity最全的最详细的Cinemachine(虚拟相机系统)介绍,详细案例讲解,快速上手。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3750

4002: [JLOI2015]有意义的字符串

4002: [JLOI2015]有意义的字符串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 780  Solved: 325 [Submit][Status][Discuss] Description  B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input

CRZbulabula的博客 911

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【BZOJ4002】[JLOI2015]有意义的字符串(数论,矩阵快速幂)

【BZOJ4002】[JLOI2015]有意义的字符串(数论,矩阵快速幂) 题面 BZOJ 洛谷 题解 发现我这种题总是做不动。。。 令\(A=\frac{b+\sqrt d}{2},B=\frac{b-\sqrt d}{2}\)。 发现\(A+B=b,AB=\frac{b^2-d}{4}\)。 要求的东西是\(A^n\),我们变成\(A^n+B^n-B^n\)。 分开考虑,发现\(A^n+B^n...

weixin_30621711的博客 177

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

洛谷P3263 [JLOI2015]有意义的字符串(数学+矩阵乘法)

写篇题解纪念下,毕竟我一道题犯这么多SB错误(sizeof(0),long long传参传成int,没有赋值等)也是不容易= = 考虑数列\(a_n=(\frac{b+\sqrt{d}}{2})^n+(\frac{b-\sqrt{d}}{2})^n\),则数列\(a_n\)的特征方程为\(x^2-bx-\frac{d-b^2}{4}=0\) 则\(\{a_n\}\)的递推公式为\(a_n...

abbgqna17764的博客 158

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

bzoj4002[JLOI2015]有意义的字符串

bzoj4002[JLOI2015]有意义的字符串 题意: 给出b,d,n。求 题解: 蒟蒻太弱只能引用神犇的题解 构造数列an=b∗an−1+d−b2/4*an−2,其中a0=2,a1=b,然后我们求出这个数列的通项公式,得到an=(b+d√2)n+(b−d√2)n即(b+d√2)n=an−(b−d√2)n。由于b%2=1,d%4=1,因此d−b2/4一定是个正整数,故我们可...

weixin_34067980的博客 84

bzoj4002: [JLOI2015]有意义的字符串

4002: [JLOI2015]有意义的字符串 Time Limit:10 SecMemory Limit:128 MB Description B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 b;d;n Output 一行一个数表示模 752844341...

weixin_30568715的博客 113

【BZOJ4002】[JLOI2015]有意义的字符串 数学

【BZOJ4002】[JLOI2015]有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 b;d;n Output 一行一个数表示模 7528443412579576937 之后的结果。 Sample Input 1 5 9 Sa...

aodanchui1057的博客 175

[BZOJ4002][JLOI2015]有意义的字符串-[快速乘法+矩阵乘法]

Description 传送门 Solution 由于这里带了小数,直接计算显然会爆掉,我们要想办法去掉小数。 而由于原题给了暗示:b2<=d<=(b+1)2,我们猜测可以利用$(\frac{b-\sqrt{d}}{2})^{n}$的范围为(-1,1)的性质。 则$ans=((\frac{b+\sqrt{d}}{2})^{n}+(\frac{b-\sqrt{d}}{...

diancao3075的博客 124

[题解]bzoj4002(JLOI2015)有意义的字符串

DescriptionB 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input一行三个整数 b;d;nOutput一行一个数表示模 7528443412579576937 之后的结果。Sample Input1 5 9Sample Output76HINT其中 0<b2<=d<(b+1)2<=1018,n<=10180<b^2< = d<(b+1)

Saramanda的博客 840

[BZOJ4002][JLOI2015]有意义的字符串-矩阵乘法

有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 b;d;n Output 一行一个数表示模 7528443412579576937 之后的结果。 Sample Input 1 5 9 Sample Output 76 HINT 其中 0...

「嫌われ者のフィロソフィ」 365

LOJ #2106. 「JLOI2015」有意义的字符串 构造+矩阵乘法

这道题真考验一个人的数学感知啊..... 看到 $\frac{b- \sqrt d}{2}$ 的形式就要想到这是一个一元二次方程的一个根之一,然后去解. 想到这一步的话就好做了,因为我们可以列一个关于 $n$ 的递推式,然后矩阵乘法加速即可. 代码就不贴了.... ...

EM LGH 202

字符的用意_[JLOI2015]有意义的字符串

题意DescriptionB 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求\[\lfloor \left ( \frac{b+\sqrt{d}}{2} \right ) ^n \rfloor \mathrm{mod} \ p\]其中\(p=7528443412579576937\)Input一行三个整数 b;d;nOutput一行一个数表示模 75284...

weixin_39556474的博客 214
上一篇: 乘法取大模数技巧(黑科技)
下一篇: 树上三角形(idea+lct或splay)
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值