HDU 4565 So Easy!
来源:互联网 发布:淘宝客服的自我介绍 编辑:程序博客网 时间:2024/05/17 20:31
Problem Description
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!
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!
Input
There are several test cases, each test case in one line contains four positive integers: a, b, n, m. Where 0< a, m < 215, (a-1)2< b < a2, 0 < b, n < 231.The input will finish with the end of file.
Output
For each the case, output an integer Sn.
Sample Input
2 3 1 20132 3 2 20132 2 1 2013
Sample Output
4144
关键是找到递推式
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;typedef long long use;use n,m,a,b,x[2][3],y[2][3],c[3][3],e[3][3],d[3][3];int main(){ while (cin>>a>>b>>n>>m) { x[1][1]=(a+a)%m; x[1][2]=(2*a*a+2*b)%m; memset(y,0,sizeof(y)); c[1][1]=0; c[1][2]=(m+(b-a*a)%m)%m; c[2][1]=1; c[2][2]=(a+a)%m; e[1][1]=e[2][2]=1; e[1][2]=e[2][1]=0; for (int u=n-1;u;u>>=1) { if (u&1) { memset(d,0,sizeof(d)); for (int i=1;i<3;i++) for (int j=1;j<3;j++) for (int k=1;k<3;k++) (d[i][k]+=c[i][j]*e[j][k])%=m; memcpy(e,d,sizeof(d)); }; memset(d,0,sizeof(d)); for (int i=1;i<3;i++) for (int j=1;j<3;j++) for (int k=1;k<3;k++) (d[i][k]+=c[i][j]*c[j][k])%=m; memcpy(c,d,sizeof(d)); } for (int i=1;i<2;i++) for (int j=1;j<3;j++) for (int k=1;k<3;k++) (y[i][k]+=x[i][j]*e[j][k])%=m; cout<<y[1][1]<<endl; } return 0;}
0 0
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- hdu 4565So Easy!
- hdu 4565 So Easy!
- HDU 4565 So Easy!
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- HDU 4565 SO easy!
- HDU 4565 So Easy!
- hdu 4565 So Easy!
- HDU 4565 So Easy!
- HDU 4565 So Easy!
- HDU 1061 Rightmost Digit
- 虚拟内存 物理内存
- 常用的一些网址
- HDU 1301 Jungle Roads(Prim求最小生成树)
- 原型模式
- HDU 4565 So Easy!
- 模板方法模式
- linux僵死进程的产生与避免
- 如何用supervisor守护php-fpm主进程以实现php-fpm的自动重启
- Centos7安装时引导错误以及解决方案
- JAVA--反射(基础知识~~真的是基础的哦)
- HDU 4990 Reading comprehension
- 支持按行号区域文本选择的NotePad++插件开发
- 虚拟机挂载问题