vijos P1067 守望者的烦恼
来源:互联网 发布:健体与健美的区别 知乎 编辑:程序博客网 时间:2024/06/05 00:37
预处理然后矩阵加速递推
就是预处理的时候还可以以自己作为起点所以还有个自加所以在初始化矩阵的时候我们还需要+1,忽略这点就只有30了= =
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>#define LL long long #define fo(i,a,b) for(int i=a;i<=b;i++)#define down(i,a,b) for(int i=a;i>=b;i--)using namespace std;inline LL read(){LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;}#define N 10#define inf 7777777int n,m;struct matrix{LL a[N][N];void clear(){memset(a,0,sizeof(a));}void check(){fo(i,0,m-1){fo(j,0,m-1){cout<<a[i][j];}cout<<endl;}cout<<endl;}matrix operator*(const matrix b)const{matrix anss;anss.clear();fo(i,0,m-1)fo(j,0,m-1){fo(k,0,m-1){anss.a[i][j]+=a[i][k]*(b.a[k][j]);anss.a[i][j]%=inf;}}return anss;}};matrix I;void getI(){fo(i,0,m-1)fo(j,0,m-1)if(i==j)I.a[i][j]=1;}matrix KSM(matrix a,LL b){if(b==0)return I;if(b==1)return a;matrix ret=KSM(a,b/2);ret=ret*ret;if(b%2)ret=ret*a;return ret;}int main(){m=read();n=read();getI();matrix A,ans,cnt;ans.clear();ans.a[m-1][0]=1;ans.a[m-2][0]=2;down(i,m-3,0){LL anss=1;fo(j,i+1,i+m)if(j>=m)break;else anss+=ans.a[j][0];ans.a[i][0]=anss;}if(n<=m){cout<<ans.a[m-n][0]<<endl;return 0;}fo(i,0,m-1)A.a[0][i]=1;fo(i,1,m-1)fo(j,0,m-1)if(i==j+1)A.a[i][j]=1;else A.a[i][j]=0;cnt=KSM(A,n-m);//cnt.check();ans=cnt*ans;//ans.check();cout<<ans.a[0][0]<<endl;return 0;}
0 0
- vijos P1067 守望者的烦恼
- Warcraft III 守望者的烦恼 Vijos 矩阵快速幂
- 矩阵十题【七】vijos 1067 Warcraft III 守望者的烦恼
- [Vijos 1067] Warcraft III 守望者的烦恼 · 矩阵乘法
- VIJOS1067 守望者的烦恼
- Vijos P1431 守望者的逃离
- 【矩阵乘法】守望者的烦恼
- Warcraft III 守望者的烦恼
- 【vijos1067】【矩阵乘法】守望者的烦恼
- vijosP1067Warcraft III 守望者的烦恼
- Vijos P1431 守望者的逃离(动态规划,贪心)
- vijos1067Warcraft III 守望者的烦恼——by rfy
- voj 1067 守望者的烦恼 矩阵快速幂
- vijos1067 Warcraft III 守望者的烦恼(矩阵倍增)
- vijos P1200 ganggang的烦恼
- Vijos P1431 守望者的逃离 (动态规划+贪心)(未解决)
- 矩阵十大经典题目之七- Warcraft--III--守望者的烦恼
- VOJ 1067 Warcraft III 守望者的烦恼 (矩阵快速幂+dp)
- spring 事务管理不起作用原因分析与解决
- string拼接和StringBuilder性能对比
- 【util】工具类方法 总结
- 九个酒迷喝醉酒
- 关于request.getServletPort()获取访问地址的说明
- vijos P1067 守望者的烦恼
- iOS猜拳游戏源码
- js遮罩层的应用
- oracle忘记用户名和密码
- 使用Eclipse生成generated serial version ID的时候,Eclipse弹出出错信息
- android四大组件之ContentProvider小结
- 字典赋值给模型
- Java--让一个字符串翻转
- haahah