bzoj4002
http://www.lydsy.com/JudgeOnline/problem.php?id=4002
好吧,完全不会做,在考场只能爆零。
- #include<cstdio>
- #include<cstdlib>
- #include<iostream>
- #include<fstream>
- #include<algorithm>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<queue>
- #include<stack>
- #include<map>
- #include<utility>
- #include<set>
- #include<bitset>
- #include<vector>
- #include<functional>
- #include<deque>
- #include<cctype>
- #include<climits>
- #include<complex>
- //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
- using namespace std;
- typedef unsigned long long ULL;
- typedef long long LL;
- typedef double DB;
- typedef pair<int,int> PII;
- typedef complex<DB> CP;
- #define mmst(a,v) memset(a,v,sizeof(a))
- #define mmcy(a,b) memcpy(a,b,sizeof(a))
- #define fill(a,l,r,v) fill(a+l,a+r+1,v)
- #define re(i,a,b) for(i=(a);i<=(b);i++)
- #define red(i,a,b) for(i=(a);i>=(b);i--)
- #define ire(i,x) for(typedef(x.begin()) i=x.begin();i!=x.end();i++)
- #define fi first
- #define se second
- #define m_p(a,b) make_pair(a,b)
- #define SF scanf
- #define PF printf
- #define two(k) (1<<(k))
- template<class T>inline T sqr(T x){return x*x;}
- template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
- template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
- const DB EPS=1e-;
- inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
- const DB Pi=acos(-1.0);
- inline int gint()
- {
- int res=;bool neg=;char z;
- for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
- if(z==EOF)return ;
- if(z=='-'){neg=;z=getchar();}
- for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
- return (neg)?-res:res;
- }
- inline LL gll()
- {
- LL res=;bool neg=;char z;
- for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
- if(z==EOF)return ;
- if(z=='-'){neg=;z=getchar();}
- for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
- return (neg)?-res:res;
- }
- const ULL Mod=;
- ULL b,d,n;
- ULL res;
- inline ULL cheng(ULL a,ULL b)
- {
- ULL res=;
- for(;b!=;b>>=){if(b&)res=(res+a)%Mod;a=(a<<)%Mod;}
- return res;
- }
- struct Tmatrix
- {
- int n,m;
- ULL v[][];
- inline void clear(){n=m=;mmst(v,);}
- inline friend Tmatrix operator *(Tmatrix a,Tmatrix b)
- {
- Tmatrix c;c.clear();
- int i,j,k;
- c.n=a.n;c.m=b.m;
- re(i,,c.n)
- re(j,,c.m)
- re(k,,a.m)
- c.v[i][j]=(c.v[i][j]+cheng(a.v[i][k],b.v[k][j]))%Mod;
- return c;
- }
- };
- inline Tmatrix power(Tmatrix a,ULL k)
- {
- Tmatrix x;x.clear();
- x.n=x.m=;
- x.v[][]=x.v[][]=;
- while(k){if(k&)x=x*a;a=a*a;k>>=;}
- return x;
- }
- Tmatrix A;
- int main()
- {
- freopen("bzoj4002.in","r",stdin);
- freopen("bzoj4002.out","w",stdout);
- b=gll();d=gll();n=gll();
- if(n==)
- cout<<""<<endl;
- else
- {
- A.clear();
- A.n=A.m=;
- A.v[][]=b;A.v[][]=(d-b*b)/;
- A.v[][]=;A.v[][]=;
- A=power(A,n-);
- res=(cheng(A.v[][],b)+cheng(A.v[][],))%Mod;
- if(b*b!=d && !(n&))res--;
- res=(res%Mod+Mod)%Mod;
- cout<<res<<endl;
- }
- return ;
- }
bzoj4002的更多相关文章
- 【BZOJ4002】[JLOI2015]有意义的字符串(数论,矩阵快速幂)
[BZOJ4002][JLOI2015]有意义的字符串(数论,矩阵快速幂) 题面 BZOJ 洛谷 题解 发现我这种题总是做不动... 令\(A=\frac{b+\sqrt d}{2},B=\frac{ ...
- 【bzoj4002】有意义的字符串
Portal --> bzoj4002 Solution 虽然说这题有点强行但是感觉还是挺妙的,给你通项让你反推数列的这种==有点毒 补档时间 首先有一个东西叫做特征方程,我们可以 ...
- 【BZOJ4002】[JLOI2015]有意义的字符串 数学
[BZOJ4002][JLOI2015]有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 ...
- BZOJ4002 [JLOI2015]有意义的字符串 【数学 + 矩乘】
题目链接 BZOJ4002 题解 容易想到\(\frac{b + \sqrt{d}}{2}\)是二次函数\(x^2 - bx + \frac{b^2 - d}{4} = 0\)的其中一根 那么就有 \ ...
- BZOJ4002 [JLOI2015]有意义的字符串
据说这两场加起来只要170= =而这是最简单的题目了QAQ 看到$(\frac {b + \sqrt {d} } {2} )^n$,第一反应是共轭根式$(\frac {b - \sqrt {d} } ...
- luogu3263/bzoj4002 有意义的字符串 (数学+矩阵快速幂)
首先我们发现$\frac{b+\sqrt{d}}{2}$这个形式好像一元二次方程的求根公式啊(???反正我发现不了) 然后我们又想到虽然这个东西不好求但是$(\frac{b-\sqrt{d}}{2}) ...
- [BZOJ4002][JLOI2015]有意义的字符串-[快速乘法+矩阵乘法]
Description 传送门 Solution 由于这里带了小数,直接计算显然会爆掉,我们要想办法去掉小数. 而由于原题给了暗示:b2<=d<=(b+1)2,我们猜测可以利用$(\fra ...
- 【bzoj4002】[JLOI2015]有意义的字符串 数论+矩阵乘法
题目描述 B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 输入 一行三个整数 b;d;n 输出 一行一个数表示模 7528443412579576937 ...
- bzoj4002 [JLOI2015]有意义的字符串 快速幂
Description B 君有两个好朋友,他们叫宁宁和冉冉. 有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求((b+sqrt(D)/2)^N的整数部分,请输出结果 Mod 752844341 ...
随机推荐
- Spring中Ioc容器的注入方式
1 通过setter方法注入 bean类: package com.test; public class UserServiceImplement implements IUserService { ...
- V$、GV$、X$、V_$、GV_$之间的关系
V$.GV$.X$.V_$.GV_$之间的关系 GV$:全局视图,针对多个实例环境. V$:针对某个实例的视图. X$:是GV$视图的数据来源,oracle内部表. GV_$:是GV$的同义词. V_ ...
- 简单CSS定位瀑布流实现方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用FastClick的同时造成元素上的trigger('click')无法触发的解决办法
现象还原: 1. 初始化进入多规格卖场商详页的时候,chrome模拟器切换到安卓环境下,点击加入购物车,规格弹出页没有展示.而在PC和IOS模拟器下,可以弹出规格页 2. 点击加入购物车时,使用 $( ...
- TTTAttributedLabel使用介绍(转)
TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 可以实现电话 地址 链接自动查找显示 ...
- ubuntu server 14.04.4 无线网卡没有启用,找不到wlan0端口
Ubuntu Server默认的情况下是不会启用无线网卡的,想想实际服务器上怎么可能有无线网卡呢,呵呵.所以我们需要手动来启用无线网卡,难点就在这里了. 使用ifconfig命令,发现没有wlan口, ...
- less样式表
LESS是一种由Alexis Sellier设计的动态层叠样式表语言.受Sass所影响,同时也影响了Sass的新语法:SCSS.[2] LESS是开源的,其第一个版本由Ruby写成,但在后续的版本当 ...
- IIS发布程序,出现:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理解决方案
windows 7(或者windows 2008)+iis7.5 出现如下错误的解决方法: 错误描述:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 解决方法: 打开cmd命令窗口,执行如下 ...
- 【nodejs学习】0.nodejs学习第一天
1.模块 大一点的程序都需要模块化,nodejs也不例外,代码放到不同的文件中,每一个文件就可以是一个模块,文件路径名就是一个模块名.每个模块中包含三个预先定义的变量: 1.require:用于在当前 ...
- 23 读取excel
/** index mappingname originalname datatype family 0 task_id taskIndexCode STRING info 1 task_type r ...