找规律,数学(巨大的斐波那契数列,uva 11582)
2016-09-26 23:44
411 查看
18446744073709551615=2^64-1是unsigned long long能表示的最大的数,输入输出用%llu或%I64u。
发现很多数学题都是要你找规律的,只不过要注意特殊数据。
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
vector<ll>f[1010];
void init()
{
for(ll i=2;i<=1000;i++)
{
f[i].push_back(0);
f[i].push_back(1);
for(ll j=2;;j++)
{
ll temp=(f[i][j-2]%i+f[i][j-1]%i)%i;
if(f[i][j-1]==0&&temp==1) break;
else f[i].push_back(temp);
}
}
}
ll a,b,n;
ll mypow(ll x,ll n,ll mod)
{
x%=mod;
ll ret=1;
while(n)
{
if(n&1) ret=(ret*x)%mod;
x=(x*x)%mod;
n>>=1;
}
return ret;
}
int main()
{
init();
ll t;
scanf("%I64u",&t);
while(t--)
{
scanf("%I64u %I64u %I64u",&a,&b,&n);
if(n==1)
{
puts("0");
continue;
}
ll num=mypow(a,b,ll(f
.size()-1));
printf("%I64u\n",f
[num]);
}
return 0;
}
发现很多数学题都是要你找规律的,只不过要注意特殊数据。
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
vector<ll>f[1010];
void init()
{
for(ll i=2;i<=1000;i++)
{
f[i].push_back(0);
f[i].push_back(1);
for(ll j=2;;j++)
{
ll temp=(f[i][j-2]%i+f[i][j-1]%i)%i;
if(f[i][j-1]==0&&temp==1) break;
else f[i].push_back(temp);
}
}
}
ll a,b,n;
ll mypow(ll x,ll n,ll mod)
{
x%=mod;
ll ret=1;
while(n)
{
if(n&1) ret=(ret*x)%mod;
x=(x*x)%mod;
n>>=1;
}
return ret;
}
int main()
{
init();
ll t;
scanf("%I64u",&t);
while(t--)
{
scanf("%I64u %I64u %I64u",&a,&b,&n);
if(n==1)
{
puts("0");
continue;
}
ll num=mypow(a,b,ll(f
.size()-1));
printf("%I64u\n",f
[num]);
}
return 0;
}
相关文章推荐
- 《算法竞赛入门经典》第十章 数学概念与方法 UVa11582(幂取模,循环规律,模算术)
- UVa11582 巨大的斐波那契数列
- UVa11582 巨大的斐波那契数列 (快速幂 同余数与模运算)
- UVA 11582 巨大数的斐波那契数列 (大数取模,幂取模,模的计算方法)
- UVa11582 Colossal Fibonacci Numbers!(斐波那契数列小规律+思维)
- UVa 11582 巨大斐波那契数列 (预处理 + 快速幂)
- 例题10-1 UVA 11582 Colossal Fibonacci Numbers!巨大的斐波那契数列
- UVA 864-Steps 数学规律
- 巨大的斐波那契数!(Uva 11582)
- UVa 11582 巨大的斐波那契数!(幂取模)
- UVa11582 巨大的斐波那契数 循环节计算+快速幂
- UVA-11582 数学
- UVA - 11582 Colossal Fibonacci Numbers! 巨大的斐波那契数
- UVA-11582-Colossal Fibonacci Numbers!(规律+幂取模)
- UVa11582 巨大的斐波那契数
- Beehive UVALive - 7528 (找规律+数学思维)
- GCD XOR UVA - 12716 ——筛法建立约数表+xor运算+数学规律
- UVA 11582 Colossal Fibonacci Numbers! 数学
- UVa 10162 Last Digit (数学规律)
- UVa11582 - Colossal Fibonacci Numbersl (打表找规律)