【题目大意】

若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式:
F[1][1]=1
F[i,j]=a*F[i][j-1]+b (j!=1)①
F[i,1]=c*F[i-1][m]+d (i!=1)②
递推式中a,b,c,d都是给定的常数。求F[n][m]。

【思路】

磨了一个早上,然而UOJ上的额外数据还没有过去..BZOJ上已AC先放上来,后续慢慢磨……

*还有一点,最后输出答案的时候要先+MOD再%MOD。

*MOD要勤快一点,不然会爆。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MOD 1000000007
using namespace std;
typedef long long ll;
const int MAXN=+;
struct node
{
ll uni,ord;//uni表示a≠1,ord表示a=1
}n,m;
ll a,b,c,d; ll quick(ll x,ll p)
{
ll res=p,retu=,now=x;
while (res>)
{
if (res&) retu=(retu*now) % MOD;
now=(now*now) % MOD;
res>>=;
}
return retu;
} ll ni(ll x)
{
return quick(x,MOD-);
} node get_value(char str[])
{
int len=strlen(str);
node ret=(node){,};
for (int i=;i<len;i++)
{
ret.uni=((ret.uni*)%(MOD-)+str[i]-'')%(MOD-);
ret.ord=((ret.ord*)%MOD+str[i]-'')%MOD;
}
return ret;
} void init()
{
char strm[MAXN],strn[MAXN];
scanf("%s%s",strn,strm);
n=get_value(strn);
m=get_value(strm);
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
} void get_ans()
{
ll f;//=f[n+1][1]
if (a==)
{
ll D=((((c*(m.ord-))%MOD)*b)%MOD+d)%MOD;
if (c==) f=(+n.ord*D)%MOD;
else
{
ll cn=quick(c,n.uni);
f=(cn+(D*(cn-)*ni(c-)%MOD))%MOD;
}
}
if (a!=)
{
ll am=quick(a,m.uni-);
ll A=(am*c)%MOD;
ll B=(((((b*c)%MOD*(am-))%MOD*ni(a-)))%MOD+d)%MOD;
ll An=quick(A,n.uni);
f=An+((B*(An-)%MOD)*ni(A-))%MOD;
}
printf("%lld",((f-d)*ni(c)%MOD+MOD)%MOD);
} int main()
{
init();
get_ans();
return ;
}

【费马小定理+快速幂+逆元】BZOJ3240-[NOI2013]矩阵游戏的更多相关文章

  1. BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 共n个卡片,染成r,b,g三种颜色,每种颜色的个数有规定.给出一些置换,可以由置换得到的 ...

  2. hdu1576-A/B-(同余定理+乘法逆元+费马小定理+快速幂)

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum

    Sum Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ...

  4. 2014多校第一场 I 题 || HDU 4869 Turn the pokers(费马小定理+快速幂模)

    题目链接 题意 : m张牌,可以翻n次,每次翻xi张牌,问最后能得到多少种形态. 思路 :0定义为反面,1定义为正面,(一开始都是反), 对于每次翻牌操作,我们定义两个边界lb,rb,代表每次中1最少 ...

  5. hdu_4869(费马小定理+快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4869 Turn the pokers Time Limit: 2000/1000 MS (Java/O ...

  6. hdu4549(费马小定理 + 快速幂)

    M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n ...

  7. HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)

    题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description   Sample Input 2 Sample Outp ...

  8. 牛客训练四:Applese 涂颜色(费马小定理+快速幂)

    题目链接:传送门 思路: 考虑每一列有2种颜色,总共有n行,每一行的第一个格确定颜色,由于左右颜色不相同,后面的行就确定了. 所以总共有2^n中结果. 由于n太大,所以要用到费马小定理a^n%mod= ...

  9. hdu 4704 sum(费马小定理+快速幂)

    题意: 这题意看了很久.. s(k)表示的是把n分成k个正整数的和,有多少种分法. 例如: n=4时, s(1)=1     4 s(2)=3     1,3      3,1       2,2 s ...

随机推荐

  1. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) C (用map 超时)

    C. Bear and Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. bzoj 5099 [POI2018]Pionek 计算几何 极角排序

    [POI2018]Pionek Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 269  Solved: 80[Submit][Status][Disc ...

  3. webkit开发,app移动前端知识点

    1. viewport:也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域,这是真正有效的区域.由于移动设备屏幕宽度不同于 ...

  4. 新手如何更换自己喜欢的背景以及此背景的css码

    以下内容为转载(对于css码可以自己写当然也可以去网上搜现成的): 更换背景教学:https://jingyan.baidu.com/album/fc07f9897c730412ffe519c0.ht ...

  5. 转: 构建基于Nginx的文件服务器思路与实现

    在Web项目中使用独立的服务器来保存文件和图片的好处很多,如:便于统一管理,分流web服务器的压力,可进行访问加速等.另外当web服务器需要做集群进行负载均衡时,图片和文件上传在各个服务器之间同步将是 ...

  6. 查找算法总结Java实现

    之前对查找算法做的一些简单总结与实现: 查找算法时间复杂度: 1.二分查找的实现(待补充) public class Test { //循环实现二分查找 public static int binar ...

  7. HDU1869---(最短路+floyd)

    http://acm.hdu.edu.cn/showproblem.php?pid=1869 思路:最短路+floyd 分析:1 题目是要求所有的数据能否满足“六度分离”,那么我们就想到所有点之间的最 ...

  8. 一维和二维ST模板

    void init(){ ; i < n; i++) st[i][] = a[i]; ; ( << j) <= n; j++){ ; i + ( << j) - & ...

  9. 【比赛】百度之星2017 初赛Round B

    第一题 题意:给定n*m网络,定义两个棋子在同行同列则相互攻击,同时要求两个棋子的行和列不能一小一大,求满足条件的最大摆放的方案数. 题解:ans=C(max(n,m),min(n,m)),就是在ma ...

  10. OC学习——OC中的@protocol(@required、@optional)、代理设计模式

    一.什么是协议? 1.协议声明了可以被任何类实现的方法   2.协议不是类,它是定义了一个其他对象可以实现的接口   3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议.   4.协 ...