/* 巨大的斐波那契数列_________________________________________________________________________________

                                       #include <iostream>
#include <map>
#include <cmath>
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
#define fir first
#define sec second
#define pb(x) push_back(x)
#define mem(A, X) memset(A, X, sizeof A)
#define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
#define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i))
#define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e) typedef pair<long,long> pll; int T,n;
const int mod=1e9+7;
const int maxn=1e3+10;
typedef unsigned long long ULL;
ULL qsm(ULL a, ULL b, ULL mod) // 0<=a<=ULL 0<=b<=ULL
{
a=a%mod;
ULL res=1;
while(b)
{
//a=a%mod;(有时候n的值太大了会超出long long的储存,所以要先取余)
if(b&1)//&位运算:判断二进制最后一位是0还是1,&的运算规则为前后都是1的时候才是1;
res=res*a%mod;
b=b>>1;//相当于除以2;
a=a*a%mod;
}
return res;
}
ULL f[maxn*maxn+1000];
int main()
{
freopen("in.txt","r",stdin);
//while(cin>>n)
while(cin>>T&&T)
{
REP(kase,1,T) {
ULL ans;
ULL a,b,n;
cin>>a>>b>>n;
if(a==0||n==1) ans=0;
else
{ f[1]=1;
f[0]=0;
int M;
REP(i,2,n*n+10)
{
f[i]=(f[i-1]+f[i-2])%n;
if(f[i]==f[1]&&f[i-1]==f[0])
{
M=i-1;
break;
}
}
ULL t=qsm(a,b,M);
ans=f[t];
}
cout<<ans<<endl;
}
}
return 0;
} /*
note : typedef 给数据类型加个名字, 是一条语句,只需要放在宏定义之后即可(即可全局,可main 函数内).
对于循环节类的问题,只需要找到刚开始的起始项,之后找到周期,利用周期的一致性,将查询到
项直接进行周期M取模即可,注意f[0]是否进行了赋值,如果没有的话还需要f[0]=f[M].
debug : 范围比较大需要用到ull
re的原因有可能是因为数据类型不一致,(返回 runtime error )
for(int i=1;i<=(unsigned long long)100;i++) optimize: 分析出n的范围,预处理出来,可以避免大量的查询.分析出来了所有的基本可能情况.
改进快速幂取模,
命名 进行程序变量的命名的时候,最好直接指代原来的变量例如 预处理n的时候,直接就是n就可以.
REP(n,2,maxn)
*/

uva 12169的更多相关文章

  1. UVA.12169 Disgruntled Judge ( 拓展欧几里得 )

    UVA.12169 Disgruntled Judge ( 拓展欧几里得 ) 题意分析 给出T个数字,x1,x3--x2T-1.并且我们知道这x1,x2,x3,x4--x2T之间满足xi = (a * ...

  2. UVA 12169 Disgruntled Judge 扩展欧几里得

    /** 题目:UVA 12169 Disgruntled Judge 链接:https://vjudge.net/problem/UVA-12169 题意:原题 思路: a,b范围都在10000以内. ...

  3. UVa 12169 - Disgruntled Judge(拓展欧几里德)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  4. UVA 12169 Disgruntled Judge 枚举+扩展欧几里得

    题目大意:有3个整数 x[1], a, b 满足递推式x[i]=(a*x[i-1]+b)mod 10001.由这个递推式计算出了长度为2T的数列,现在要求输入x[1],x[3],......x[2T- ...

  5. UVA 12169 Disgruntled Judge【扩展欧几里德】

    题意:随机选取x1,a,b,根据公式xi=(a*xi-1+b)%10001得到一个长度为2*n的序列,奇数项作为输入,求偶数项,若有多种,随机输出一组答案. 思路:a和b均未知,可以考虑枚举a和b,时 ...

  6. UVa 12169 (枚举+扩展欧几里得) Disgruntled Judge

    题意: 给出四个数T, a, b, x1,按公式生成序列 xi = (a*xi-1 + b) % 10001 (2 ≤ i ≤ 2T) 给出T和奇数项xi,输出偶数项xi 分析: 最简单的办法就是直接 ...

  7. UVA 12169 Disgruntled Judge

    我该怎么说这道题呢...说简单其实也简单,就枚举模拟,开始卡了好久,今天看到这题没a又写了遍,看似会超时的代码交上去a了,果然实践是检验真理的唯一标准... #include <iostream ...

  8. hdu 2769 uva 12169 Disgruntled Judge 拓展欧几里德

    //数据是有多水 连 10^10的枚举都能过 关于拓展欧几里德:大概就是x1=y2,y1=x2-[a/b]y2,按这个规律递归到gcd(a,0)的形式,此时公因数为a,方程也变为a*x+0*y=gcd ...

  9. UVA - 12169 -扩展欧几里得算法

    #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> ...

随机推荐

  1. php 循环删除目录中的过期文件

            $savepath1 = 'Public/biaoqian/upload';         $path1 = dir($savepath1);           while (($ ...

  2. Asp.net MVC路由机制

    C:/Windows/Microsoft.NET/Framwork/v4.0.30319/config/web.config-> httpModules-> System.Web.Rout ...

  3. linux配置网卡绑定

    1.确定好要绑定的那两个网口 我这边要绑定的是两个业务口  em2.em3 2.配置ifcfg-bond0.em2.em3 3.修改配置文件/etc/modprcode.d/disk.conf 底部添 ...

  4. 读IT小小鸟有感

           第一次阅读<我是一只IT小小鸟>是在老师的推荐下的,我是一名软工大一新生,那天在课堂上听到了这本书,由于是10年前的老书,要找到它非常不易,终于在网上看到一些部分电子档.   ...

  5. CSS之立体球体

    <!DOCTYPE html><html><head> <title>球体</title> <meta charset="u ...

  6. sql server数据库连接问题处理

    下面请一字一句地看,一遍就设置成功,比你设置几十遍失败,费时会少得多. 首先,在连接数据库之前必须保证SQL Server 2012是采用SQL Server身份验证方式而不是windows身份验证方 ...

  7. a链接的四种状态

    四种状态:hover.link.active.visible a:link{color:#fff;} a链接初始化 a:hover{color:yellow;} 把鼠标放上去的状况 a:active{ ...

  8. jQuery原生框架-----------------dom操作

    // 扩展DOM操作方法jQuery.fn.extend({ // 设置或者获取元素的内容 html: function( html ) { /* * 实现思路: * 1.不传参,返回第一个元素的内容 ...

  9. fontsize可以解决img标签插入图片之间的缝隙

    当我们用img标签连续插入多张图片的时候,图片和图片之间会出现缝隙,通常我们的做法是用DIV将图片包起来进行浮动来解决这个问题,但是还有一种解决方法是在img的父级元素里面设置font-size:0来 ...

  10. table-responsive响应式表格,HTML表格自适应,bootstrap2表格自适应

    引用bootstrap3 的方法 @media (max-width: 767px) { .table-responsive { width: 100%; margin-bottom: 15px; o ...