hdu4565】的更多相关文章

[HDU4565]So Easy! 题面 要你求 \[ \lceil (a+\sqrt b)^n \rceil \% m \] 其中\(0<a,m<2^{15},(a-1)^2<b<a^2,0<b,n<2^{31}\) 题解 这个向上取整放在这里很丑对吧,我们化一下柿子. \[ \because (a-1)^2<b<a^2\\ \therefore a-\sqrt b \] 因为\((a-\sqrt b)^n\)是个很小的小数且\(a-\sqrt b\)与\…
HDU2256 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2256 题意:求(sqrt(2)+sqrt(3))^2n%1024是多少. 这个题算是hdu4565的一个常数版本了,所以我们先说这道题.对于这道题的做法我们可以计算((sqrt(2)+sqrt(3))^2)^n=(5+2*sqrt(6))^n,对于(5+2*sqrt(6))^n我们知道答案必定是以an+bn*sqrt(6),而对于下一项我们只需要求(an+bn*sqrt(6))*(5…
题目链接:https://vjudge.net/problem/HDU-4565 So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5525    Accepted Submission(s): 1841 Problem Description A sequence Sn is defined as:Where a, b,…
/* HDU4565 So Easy! http://acm.hdu.edu.cn/showproblem.php?pid=4565 数论 快速幂 矩阵快速幂 题意:求[(a+sqrt(b))^n ]%m [ ]代表向上取证 联想到斐波那契数列,所以第一感觉是矩阵快速幂 后来发现根本不用这么麻烦,我们认为a+b*sqrt(c)中的a为实部 b为虚部,就能直接用二元乘法模拟矩阵快速幂了,因此这两种方法 是等价的.于是乎,我们就解决了精度问题. 然而即使我们得出了结果中的a+b*sqrt(c)也不能…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565 这个博客讲的比较好:http://blog.csdn.net/ljd4305/article/details/8987823 题意:给定a,b,,n,m,求Sn #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include<cmath>…
部分转自http://blog.csdn.net/crazy______/article/details/9021169 #include<cstdio> using namespace std; __int64 A[3][3],s[3][3],tmp[3][3]; void fun(__int64 n,__int64 m) { __int64 i,j,k; for(i=1;i<=2;i++) for(j=1;j<=2;j++) { s[i][j]=A[i][j]; } --n;…
A sequence Sn is defined as: Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate Sn. You, a top coder, say: So easy! 矩阵快速幂 #include<stdio.h> #include<string.h> #include<math.h> typedef…
So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4673    Accepted Submission(s): 1539 Problem Description A sequence Sn is defined as:Where a, b, n, m are positive integers.┌x┐is the cei…
这题太坑了...刚开始以为可以用|a+sqrt(b)  1|水过...结果tle,还一直想明明我logn的做法怎么可能tle.. |    0           1| 实在无奈看的题解 (a+sqrt(b))^n=x+y*sqrt(b);  (a+sqrt(b))^(n+1)=a*x+b*y+(x+a*y)*sqrt(b) 这样可以构造矩阵|a  b|    *   |x| |1  b|         |y| 还有记得矩阵乘法%m 最后还有一个坑就是    (a-1)^2<b<a^2 ,…
注意题目的一个关键条件(a-1)2< b < a2 , 于是可以知道    0 < a-√b < 1 ,所以 (a-√b)^n < 1 . 然后 (a+ √b)^n+(a-√b)^n 的值为整数且正好是 (a+√b)^n的向上取整. 然后就可以得到递推式 f[n+1]=2*a*f[n]-(a*a-b)*f[n-1] . 然后构造矩阵. 幂乘即可. So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit:…