http://www.lydsy.com/JudgeOnline/problem.php?id=4002

好吧,完全不会做,在考场只能爆零。

膜拜PoPoQQQ大神

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<fstream>
  5. #include<algorithm>
  6. #include<cstring>
  7. #include<string>
  8. #include<cmath>
  9. #include<queue>
  10. #include<stack>
  11. #include<map>
  12. #include<utility>
  13. #include<set>
  14. #include<bitset>
  15. #include<vector>
  16. #include<functional>
  17. #include<deque>
  18. #include<cctype>
  19. #include<climits>
  20. #include<complex>
  21. //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
  22.  
  23. using namespace std;
  24.  
  25. typedef unsigned long long ULL;
  26. typedef long long LL;
  27. typedef double DB;
  28. typedef pair<int,int> PII;
  29. typedef complex<DB> CP;
  30.  
  31. #define mmst(a,v) memset(a,v,sizeof(a))
  32. #define mmcy(a,b) memcpy(a,b,sizeof(a))
  33. #define fill(a,l,r,v) fill(a+l,a+r+1,v)
  34. #define re(i,a,b) for(i=(a);i<=(b);i++)
  35. #define red(i,a,b) for(i=(a);i>=(b);i--)
  36. #define ire(i,x) for(typedef(x.begin()) i=x.begin();i!=x.end();i++)
  37. #define fi first
  38. #define se second
  39. #define m_p(a,b) make_pair(a,b)
  40. #define SF scanf
  41. #define PF printf
  42. #define two(k) (1<<(k))
  43.  
  44. template<class T>inline T sqr(T x){return x*x;}
  45. template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
  46. template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
  47.  
  48. const DB EPS=1e-;
  49. inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
  50. const DB Pi=acos(-1.0);
  51.  
  52. inline int gint()
  53. {
  54. int res=;bool neg=;char z;
  55. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  56. if(z==EOF)return ;
  57. if(z=='-'){neg=;z=getchar();}
  58. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  59. return (neg)?-res:res;
  60. }
  61. inline LL gll()
  62. {
  63. LL res=;bool neg=;char z;
  64. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  65. if(z==EOF)return ;
  66. if(z=='-'){neg=;z=getchar();}
  67. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  68. return (neg)?-res:res;
  69. }
  70.  
  71. const ULL Mod=;
  72.  
  73. ULL b,d,n;
  74. ULL res;
  75.  
  76. inline ULL cheng(ULL a,ULL b)
  77. {
  78. ULL res=;
  79. for(;b!=;b>>=){if(b&)res=(res+a)%Mod;a=(a<<)%Mod;}
  80. return res;
  81. }
  82.  
  83. struct Tmatrix
  84. {
  85. int n,m;
  86. ULL v[][];
  87. inline void clear(){n=m=;mmst(v,);}
  88. inline friend Tmatrix operator *(Tmatrix a,Tmatrix b)
  89. {
  90. Tmatrix c;c.clear();
  91. int i,j,k;
  92. c.n=a.n;c.m=b.m;
  93. re(i,,c.n)
  94. re(j,,c.m)
  95. re(k,,a.m)
  96. c.v[i][j]=(c.v[i][j]+cheng(a.v[i][k],b.v[k][j]))%Mod;
  97. return c;
  98. }
  99. };
  100.  
  101. inline Tmatrix power(Tmatrix a,ULL k)
  102. {
  103. Tmatrix x;x.clear();
  104. x.n=x.m=;
  105. x.v[][]=x.v[][]=;
  106. while(k){if(k&)x=x*a;a=a*a;k>>=;}
  107. return x;
  108. }
  109.  
  110. Tmatrix A;
  111.  
  112. int main()
  113. {
  114. freopen("bzoj4002.in","r",stdin);
  115. freopen("bzoj4002.out","w",stdout);
  116. b=gll();d=gll();n=gll();
  117. if(n==)
  118. cout<<""<<endl;
  119. else
  120. {
  121. A.clear();
  122. A.n=A.m=;
  123. A.v[][]=b;A.v[][]=(d-b*b)/;
  124. A.v[][]=;A.v[][]=;
  125. A=power(A,n-);
  126. res=(cheng(A.v[][],b)+cheng(A.v[][],))%Mod;
  127. if(b*b!=d && !(n&))res--;
  128. res=(res%Mod+Mod)%Mod;
  129. cout<<res<<endl;
  130. }
  131. return ;
  132. }

bzoj4002的更多相关文章

  1. 【BZOJ4002】[JLOI2015]有意义的字符串(数论,矩阵快速幂)

    [BZOJ4002][JLOI2015]有意义的字符串(数论,矩阵快速幂) 题面 BZOJ 洛谷 题解 发现我这种题总是做不动... 令\(A=\frac{b+\sqrt d}{2},B=\frac{ ...

  2. 【bzoj4002】有意义的字符串

    Portal --> bzoj4002 Solution ​ 虽然说这题有点强行但是感觉还是挺妙的,给你通项让你反推数列的这种==有点毒 ​​ 补档时间 ​ 首先有一个东西叫做特征方程,我们可以 ...

  3. 【BZOJ4002】[JLOI2015]有意义的字符串 数学

    [BZOJ4002][JLOI2015]有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 ...

  4. BZOJ4002 [JLOI2015]有意义的字符串 【数学 + 矩乘】

    题目链接 BZOJ4002 题解 容易想到\(\frac{b + \sqrt{d}}{2}\)是二次函数\(x^2 - bx + \frac{b^2 - d}{4} = 0\)的其中一根 那么就有 \ ...

  5. BZOJ4002 [JLOI2015]有意义的字符串

    据说这两场加起来只要170= =而这是最简单的题目了QAQ 看到$(\frac {b + \sqrt {d} } {2} )^n$,第一反应是共轭根式$(\frac {b - \sqrt {d} } ...

  6. luogu3263/bzoj4002 有意义的字符串 (数学+矩阵快速幂)

    首先我们发现$\frac{b+\sqrt{d}}{2}$这个形式好像一元二次方程的求根公式啊(???反正我发现不了) 然后我们又想到虽然这个东西不好求但是$(\frac{b-\sqrt{d}}{2}) ...

  7. [BZOJ4002][JLOI2015]有意义的字符串-[快速乘法+矩阵乘法]

    Description 传送门 Solution 由于这里带了小数,直接计算显然会爆掉,我们要想办法去掉小数. 而由于原题给了暗示:b2<=d<=(b+1)2,我们猜测可以利用$(\fra ...

  8. 【bzoj4002】[JLOI2015]有意义的字符串 数论+矩阵乘法

    题目描述 B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 输入 一行三个整数 b;d;n 输出 一行一个数表示模 7528443412579576937 ...

  9. bzoj4002 [JLOI2015]有意义的字符串 快速幂

    Description B 君有两个好朋友,他们叫宁宁和冉冉. 有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求((b+sqrt(D)/2)^N的整数部分,请输出结果 Mod 752844341 ...

随机推荐

  1. Spring中Ioc容器的注入方式

    1 通过setter方法注入 bean类: package com.test; public class UserServiceImplement implements IUserService { ...

  2. V$、GV$、X$、V_$、GV_$之间的关系

    V$.GV$.X$.V_$.GV_$之间的关系 GV$:全局视图,针对多个实例环境. V$:针对某个实例的视图. X$:是GV$视图的数据来源,oracle内部表. GV_$:是GV$的同义词. V_ ...

  3. 简单CSS定位瀑布流实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 使用FastClick的同时造成元素上的trigger('click')无法触发的解决办法

    现象还原: 1. 初始化进入多规格卖场商详页的时候,chrome模拟器切换到安卓环境下,点击加入购物车,规格弹出页没有展示.而在PC和IOS模拟器下,可以弹出规格页 2. 点击加入购物车时,使用 $( ...

  5. TTTAttributedLabel使用介绍(转)

    TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 可以实现电话  地址  链接自动查找显示 ...

  6. ubuntu server 14.04.4 无线网卡没有启用,找不到wlan0端口

    Ubuntu Server默认的情况下是不会启用无线网卡的,想想实际服务器上怎么可能有无线网卡呢,呵呵.所以我们需要手动来启用无线网卡,难点就在这里了. 使用ifconfig命令,发现没有wlan口, ...

  7. less样式表

    LESS是一种由Alexis Sellier设计的动态层叠样式表语言.受Sass所影响,同时也影响了Sass的新语法:SCSS.[2]  LESS是开源的,其第一个版本由Ruby写成,但在后续的版本当 ...

  8. IIS发布程序,出现:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理解决方案

    windows 7(或者windows 2008)+iis7.5 出现如下错误的解决方法: 错误描述:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 解决方法: 打开cmd命令窗口,执行如下 ...

  9. 【nodejs学习】0.nodejs学习第一天

    1.模块 大一点的程序都需要模块化,nodejs也不例外,代码放到不同的文件中,每一个文件就可以是一个模块,文件路径名就是一个模块名.每个模块中包含三个预先定义的变量: 1.require:用于在当前 ...

  10. 23 读取excel

    /** index mappingname originalname datatype family 0 task_id taskIndexCode STRING info 1 task_type r ...