https://vjudge.net/problem/UVA-10655

题意:

输入非负整数p,q,n,求a^n+b^n的值,其中a和b满足a+b=p,ab=q。

思路:

递推式转化成矩阵的规律:

这道题目根据递推式是可以转化为矩阵的:

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#include<map>
using namespace std; typedef long long LL; LL p,q,n; struct Matrix
{
LL m[][];
}ans,base; Matrix multi(Matrix a,Matrix b)
{
Matrix temp;
for(int i=;i<;i++)
for(int j=;j<;j++)
{
temp.m[i][j]=;
for(int k=;k<;k++)
{
temp.m[i][j]=(temp.m[i][j]+a.m[i][k]*b.m[k][j]);
}
}
return temp;
} void pow(int x)
{
ans.m[][]=ans.m[][]=;
ans.m[][]=ans.m[][]=;
base.m[][]=;
base.m[][]=;
base.m[][]=-q;
base.m[][]=p;
while(x)
{
if(x&)
{
ans=multi(ans,base);
}
base=multi(base,base);
x>>=;
}
printf("%lld\n",ans.m[][]*p+*ans.m[][]);
} int main()
{
//freopen("D:\\input.txt","r",stdin);
while(scanf("%lld%lld%lld",&p,&q,&n)==)
{
if(n==) {puts("");continue;}
if(n==) {printf("%lld\n",p);continue;}
if(n==) {printf("%lld\n",p*p-*q);continue;}
pow(n-);
}
return ;
}

UVa 10655 n次方之和(矩阵快速幂)的更多相关文章

  1. UVa 11149 Power of Matrix (矩阵快速幂,倍增法或构造矩阵)

    题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))( ...

  2. UVa 11149 Power of Matrix 矩阵快速幂

    题意: 给出一个\(n \times n\)的矩阵\(A\),求\(A+A^2+A^3+ \cdots + A^k\). 分析: 这题是有\(k=0\)的情况,我们一开始先特判一下,直接输出单位矩阵\ ...

  3. POJ-3070Fibonacci(矩阵快速幂求Fibonacci数列) uva 10689 Yet another Number Sequence【矩阵快速幂】

    典型的两道矩阵快速幂求斐波那契数列 POJ 那是 默认a=0,b=1 UVA 一般情况是 斐波那契f(n)=(n-1)次幂情况下的(ans.m[0][0] * b + ans.m[0][1] * a) ...

  4. uva 10518 - How Many Calls?(矩阵快速幂)

    题目链接:uva 10518 - How Many Calls? 公式f(n) = 2 * F(n) - 1, F(n)用矩阵快速幂求. #include <stdio.h> #inclu ...

  5. Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)

    题意:a1=0;a2=1;a3=2; a(n)=a(n-1)+a(n-2)+a(n-3);  求a(n) 思路:矩阵快速幂 #include<cstdio> #include<cst ...

  6. UVA - 11149 (矩阵快速幂+倍增法)

    第一道矩阵快速幂的题:模板题: #include<stack> #include<queue> #include<cmath> #include<cstdio ...

  7. UVa 10870 Recurrences (矩阵快速幂)

    题意:给定 d , n , m (1<=d<=15,1<=n<=2^31-1,1<=m<=46340).a1 , a2 ..... ad.f(1), f(2) .. ...

  8. UVA - 10870 Recurrences 【矩阵快速幂】

    题目链接 https://odzkskevi.qnssl.com/d474b5dd1cebae1d617e6c48f5aca598?v=1524578553 题意 给出一个表达式 算法 f(n) 思路 ...

  9. UVA - 10689 Yet another Number Sequence 矩阵快速幂

                      Yet another Number Sequence Let’s define another number sequence, given by the foll ...

随机推荐

  1. WEB安全番外第二篇--明日之星介绍HTML5安全问题介绍

    一.CORS领域问题: 1.CORS的介绍请参考:跨域资源共享简介 2.HTML5中的XHR2级调用可以打开一个socket连接,发送HTTP请求,有趣的是,上传文件这里恰恰是multi-part/f ...

  2. Sun公司的产品AnswerBook存在多种漏洞

    一.未授权管理脚本访问漏洞: 1.受影响版本: Sun-AnswerBook2     1.2-1.4.2 2.攻击测试手段 http://a.b.c.d:8888/ab2/@AdminViewErr ...

  3. NodeJS收发GET和POST请求

    目录: 一 express框架接收 二 接收Get 三 发送Get 四 接收Post 五 发送Post 一 express框架接收 app.get('/',function(req,res) { va ...

  4. 【BZOJ1630/2023】[Usaco2007 Demo]Ant Counting DP

    [BZOJ1630/2023][Usaco2007 Demo]Ant Counting 题意:T中蚂蚁,一共A只,同种蚂蚁认为是相同的,有一群蚂蚁要出行,个数不少于S,不大于B,求总方案数 题解:DP ...

  5. Thinkphp上传图片

    上传图片的HTML结构: <form action="{:U('Config/addImg')}" enctype="multipart/form-data&quo ...

  6. 收集一些常用的CDN链接!无需下载快速使用!

    一些常用的CDN链接,可以到这里看: http://www.bootcdn.cn/ 这个网站查找资源的方式很简单,后缀加上要查找的名字即可: 例如: http://www.bootcdn.cn/boo ...

  7. Feature Tools 简介

    FeatureTools是2017年9月上线的github项目,是一个自动生成特征的工具,应用于关系型数据. github链接:https://github.com/Featuretools/feat ...

  8. 【php】---mysql---基本操作及使用---【巷子】

    1.数据库简介 (1).什么是数据库?     一个文件  一个文件夹  一个u盘   一个硬盘......都叫做数据库    存放数据的仓库   (2).常见的数据库?     mySql  sql ...

  9. 字符串函数---atof()函数详解

    atof()函数 atof(),是C 语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,所使用的头文件为<stdlib.h>.该函数名是 “ascii to floating ...

  10. 2.1 The Object Model -- Classes and Instances(类和实例)

    一.Defining Classes(定义类) 1. 定义一个新的Ember类,调用Ember.Object上的extend()方法: example:定义了一个含有say()方法的新的Person类 ...