首页 > 其他分享 >P2609 [ZJOI2012] 数列

P2609 [ZJOI2012] 数列

时间:2024-02-02 22:00:49浏览次数:35  
标签:数列 int mu ZJOI2012 input P2609 lambda

题目传送门

实在是泰裤辣!

直接推导??不存在的。

最直接的想法是记忆化搜索,但是不想写高精……

观察发现每个 \(a_n\) 都可以写成 \(x\times a_0+y\times a_1\) 的形式。你对单个 \(a_i\) 计算系数和记忆化搜索无异。观察条件,考虑一个二元组 \((a_i,a_{i+1})\),发现可以转化成对 \((a_{i/2},a_{i/2+1})\) 的求解。

  • 当 \(i\) 是偶数时,\(\lambda a_i+\mu a_{i+1}=(\lambda +\mu)a_{i/2}+\mu a_{i/2+1}\)。
  • 当 \(i\) 是奇数时,\(\lambda a_i+\mu a_{i+1}=\mu a_{i/2}+ (\lambda +\mu)a_{i/2+1}\)。

于是可以 \(\mathcal{O}(\log n)\) 计算。

人生苦短,我用 Pyhton。

T=int(input())
for i in range(0,T):
    n=int(input())
    x=1
    y=0
    while n>0:
        if n%2==0:
            x+=y;
        else:
            y+=x;
        n//=2;
    print(y)

标签:数列,int,mu,ZJOI2012,input,P2609,lambda
From: https://www.cnblogs.com/xishanmeigao/p/18004095

相关文章

  • 【模板】 与等差数列结合的线段树
    题面代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineIOSios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#definerep(i,a,n)for(inti=a;i<=n;i++)#defineper(i,a,n)for(inti=n;i>=a;i--)#definefifirst#definesesecond#defin......
  • 洛谷 P1438 无聊的数列
    这题题解的做法千奇百怪,有写了两棵线段树的,有线段树套差分的,还有线段树套二阶差分的。我承认是我看不懂所以我决定写一篇只用一棵线段树的题解。分析众所周知,普通线段树的懒标记存的是一个待更新的量。那对于这个题来说,直接存和(也就是add操作在这个线段上的影响)肯定是不切实际......
  • P1438 无聊的数列 题解
    背景看到题解都是差分,竟然还有建两颗线段树和二阶差分的大佬。我感到不理解,很不理解。题目正解本题正解很明显就是:线段树是的,你没有看错,就只有线段树。很显然我们直接按照线段树板题写就可以了,维护题目需要维护的,注意到只有单点查询,所以我们根本不需要维护区间和,对于区间来......
  • P1962 斐波那契数列(矩阵快速幂)
    #include<bits/stdc++.h> #defineintlonglong usingnamespacestd; intn,a[3],m=1e9+7,c[3][3],b[3][3],x[3][3],a1[3]; voidfirst() { for(inti=1;i<=2;i++) for(intj=1;j<=2;j++)x[i][j]=0; for(inti=1;i<=2;i++) ......
  • 在命令提示符下输入"certutil /?"来查看完整的命令参数列表和使用说明。
    在命令提示符下输入"certutil/?"来查看完整的命令参数列表和使用说明。-dump:转储配置信息或文件-dumpPFX:转储PFX结构-asn:解析ASN.1文件-decodehex:解码十六进制编码的文件-decode:解码Base64编码的文件-encode:将文件编码为Base64-deny:拒绝挂起的请求-resub......
  • 题解 WD与数列
    P5161WD与数列可以想到原条件是一个差分形式,所以我们对原数组差分。然后发现答案其实就是\(\sum_{i<j}\min(lcp(i+1,j+1)+1,j-i)\)。这个东西先跑SA,然后建笛卡尔树。考虑对于一个区间,其值为\(x\)。那么相当于是求\(\sum_{l\inS,r\inT}\min(|sa_{l}-sa_{r}|,x)\)。笛......
  • 2.1数列极限的基本概念
    (1)因\(\left|\dfrac{3n^2}{n^2-4}-3\right|=\left|\dfrac{3n^2}{n^2-4}\right|<\dfrac{1}{n-4}<\varepsilon\),从而\(\forall\varepsilon>0\),取\(N=\left[4+\dfrac{1}{\varepsilon}\right]\),当\(n>N\)时,有\(\left|\dfrac{3n^2}{n^2-4}-3......
  • 等比数列的判定和证明
    ......
  • Halo2简单使用-斐波那契数列
    电路设计Halo2是基于PLONK算法的零知识证明框架,使用Rust语言。在Halo2中要证明你掌握斐波那契数列,例如Fib(10)=55。则需要将你的每一步计算过程(秘密的)罗列出来。并由程序(电路)来进行验证,生成证明。在PLONK算法里,我们使用表格来进行计算跟踪,例如:abc112123235358581381321132134......
  • 等比数列的判定
    前言如果数列\(\{a_n\}\)满足\(a_{n+1}=2a_n\),\(n\inN^*\),则数列\(\{a_n\}\)不一定是等比数列[此时数列还有可能为零数列,不是等比数列];若满足\(\cfrac{a_{n+1}}{a_n}=2\),\(n\inN^*\),则数列\(\{a_n\}\)一定是等比数列。这是非常容易出错的。证明方法如何证明一个数列......