11月的月赛错过了,来打12月月赛,由于很(zi)想(ji)拿(tai)衣(ruo)服(la),所以去打div2。

T1是一个sb模拟,但是机房全卡死在这道语文题上了,基本上弄了一个半小时,T2可以秒杀,T4像一个数据结构神题,写了4个set+1个树状数组水了水。

然后就剩下我最怕的数学题。llj说这道题式子贼好推,你做做吧。我瑟瑟发抖。

下来看这道题,确实是道比较简单的数学题。

我们假设$F_i$为斐波那契数列的第$i$项,

那么这道题第$k$项就应该是$A_k = A_1 \times F_{k-2} + A_2 \times F_{k-1}$

那么我们需要求满足$A_1 \times F_{k-2} + A_2 \times F_{k-1} \equiv m \pmod{p}$的$A_2$的个数。

那么直接用exgcd求最小整数解就可以啦。

(update 1229)贴个代码:

//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
#define ll long long
ll T,p,n,m;
ll f[3],g[3][3],f2[3],g2[3][3]; ll aa;char cc;
ll read() {
aa=0;cc=getchar();
while(cc<'0'||cc>'9') cc=getchar();
while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',cc=getchar();
return aa;
} ll gcd(ll x,ll y) {
return y==0? x:gcd(y,x%y);
} void cf1() {
memcpy(f2,f,sizeof(f));
f[1]=f2[1]*g[1][1]%p+f2[2]*g[2][1]%p;
f[2]=f2[1]*g[1][2]%p+f2[2]*g[2][2]%p;
if(f[1]>=p) f[1]-=p;
if(f[2]>=p) f[2]-=p;
} void cf2() {
memcpy(g2,g,sizeof(g));
memset(g,0,sizeof(g));
for(int i=1;i<=2;++i) for(int j=1;j<=2;++j) for(int k=1;k<=2;++k) {
g[i][j]+=g2[i][k]*g2[k][j]%p;
if(g[i][j]>=p) g[i][j]-=p;
}
} void qpz(ll k) {
f[1]=f[2]=1; g[1][1]=0;
g[1][2]=g[2][1]=g[2][2]=1;
while(k) {
if(k&1) cf1();
cf2(); k>>=1;
}
} ll qp(ll x,ll k) {
ll rs=1;
while(k) {
if(k&1) rs=rs*x%p;
k>>=1; x=x*x%p;
}
return rs;
} void exgcd(ll a,ll b,ll &x,ll &y) {
if(!b) {
x=1; y=0;
return;
}
exgcd(b,a%b,y,x);
y-=(a/b)*x;
} ll get_ans(ll r,ll x,ll b) {
if(r<0) return 0;
ll rs=r/b;
if(r%b>=x) rs++;
return rs;
} int main() {
T=read();ll x,y,a,b,c,o,l,r,w;
while(T--) {
w=read(); l=read(); r=read();
n=read(); p=read(); m=read();
qpz(n-3);
a=f[2]; b=p; c=(m%p-w%p*f[1]%p+p)%p;//
if(c%(o=gcd(a,b))) {
printf("0\n"); continue;
}
a/=o; b/=o; c/=o;
exgcd(a,b,x,y); x*=c;
x%=b; if(x<0) x+=b;
printf("%lld\n",get_ans(r,x,b)-get_ans(l-1,x,b));
}
return 0;
}
/*
1
692858490132927148 33 93 11 90 52
*/

CodePlus2017 12月月赛 div2可做题2的更多相关文章

  1. CodePlus2017 12月月赛 div2火锅盛宴

    当时看到这道题感觉真是难过,我数据结构太弱啦. 我们来看看需要求什么: 1.当前熟了的食物的最小id 2.当前熟了的食物中有没有编号为id的食物 3.当前没熟的食物中有没有编号为id的食物 4.当前没 ...

  2. 洛谷4030(Codeplus11月月赛)可做题1

    题目:https://www.luogu.org/problemnew/show/P4030 原来一个方阵巧妙的充要条件是该方阵的每个2*2子方阵都是巧妙的!!! 可以把每一行选的列视为一个排列,需要 ...

  3. 安恒X计划12月月赛

    ezweb 主要是序列化问题.没有PHP环境,在线运行的.实例化对象之后修改一下file.然后echo输出序列化的结果.不过下面有一个正则检查.数字前加一个+,影响了正则的匹配,但是对于序列化的还原没 ...

  4. 最大字段和&洛谷11月月赛DIV2 T1

    蒟蒻只能打一打DIV2的基础题 太卑微了 这道题的本质其实是再建一个数组,如果s串i位置是0那么就给a[i]赋值为1,表示要累加个数,如果是1那么就把a[i]赋值为-1,表示个数减一,最后求最大子段和 ...

  5. 「CodePlus 2017 12 月赛」可做题2(矩阵快速幂+exgcd+二分)

    昨天这题死活调不出来结果是一个地方没取模,凉凉. 首先有个一眼就能看出来的规律... 斐波那契数列满足$a_1, a_2, a_1+a_2, a_1+2a_2, 2a_1+3a_2, 3a_1+5a_ ...

  6. 【LIbreOJ】#6256. 「CodePlus 2017 12 月赛」可做题1

    [题意]定义一个n阶正方形矩阵为“巧妙的”当且仅当:任意选择其中n个不同行列的数字之和相同. 给定n*m的矩阵,T次询问以(x,y)为左上角的k阶矩阵是否巧妙.n,m<=500,T<=10 ...

  7. 【LibreOJ】#6257. 「CodePlus 2017 12 月赛」可做题2

    [题意]数列满足an=an-1+an-2,n>=3.现在a1=i,a2=[l,r],要求满足ak%p=m的整数a2有多少个.10^18. [算法]数论(扩欧)+矩阵快速幂 [题解]定义fib(i ...

  8. 洛谷3月月赛div2 题解(模拟+数学+贪心+数学)

    由于本人太蒻了,div1的没有参加,胡乱写了写div2的代码就赶过来了. T1 苏联人 题目背景 题目名称是吸引你点进来的. 这是一道正常的题,和苏联没有任何关系. 题目描述 你在打 EE Round ...

  9. code+12月月赛 火锅盛宴

    时间限制: 2.0 秒 空间限制: 512 MB 题目背景 SkyDec和YJQQQAQ都是Yazid的好朋友.他们都非常喜欢吃火锅.有一天,他们聚在一起,享受一场火锅盛宴. 题目描述 在这场火锅盛宴 ...

随机推荐

  1. 初识splay

    这东西都没什么板子着实让我很难受啊,只能到网上抄抄补补, 记下两个用到的博客 https://blog.csdn.net/clove_unique/article/details/50630280 h ...

  2. mac上安装软件后,桌面上软件的图标如何去掉?

    桌面上的图标是软件的镜像包,默认安装以镜像形式,你选中它,按command+e 就可以推掉它

  3. Python基础——使用with结构打开多个文件

    考虑如下的案例: 同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法: with open(filename1, 'rb') as fp1: with ...

  4. JavaSE_04_JDK1.8新特性Lambda表达式

    1.1体验Lambda的更优写法 借助Java 8的全新语法,上述Runnable接口的匿名内部类写法可以通过更简单的Lambda表达式达到等效: 1.2 Lambda标准格式 Lambda省去面向对 ...

  5. php循环语句(二)

    for 循环 for 循环用于您预先知道脚本需要运行的次数的情况. 语法 for (初始值; 条件; 增量) { 要执行的代码; } 参数: 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以 ...

  6. mysql报错:You must reset your password using ALTER USER statement before executing this statement.

    新安装mysql后,登录后,执行任何命令都会报错: You must reset your password using ALTER USER statement before executing t ...

  7. linux管道和tee命令

    ps -ef | grep docker 等价于 ps -ef &> >(grep docker) cat a.log | tee b.txt 等价于 cat a.log & ...

  8. MySQL实战总结

    极客上买了<MySQL实战45讲>,用导图大致总结后,跟大家分享下

  9. java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails

    HTTP Status 500 - Request processing failed; nested exception is org.hibernate.exception.ConstraintV ...

  10. LeetCode简单算法之删除链表中的节点 #237

    闲来无事,刷刷力扣,以解心头之闷. 题目内容: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以 ...