日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 4002--有意义的字符串(矩阵乘法)

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 4002--有意义的字符串(矩阵乘法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4002: [JLOI2015]有意義的字符串

Time Limit:?10 Sec??Memory Limit:?128 MB
Submit:?963??Solved:?416
[Submit][Status][Discuss]

Description

?B 君有兩個好朋友,他們叫寧寧和冉冉。有一天,冉冉遇到了一個有趣的題目:輸入 b;d;n,求

Input

一行三個整數 b;d;n

Output

?一行一個數表示模 7528443412579576937 之后的結果。

Sample Input

1 5 9

Sample Output

76

HINT

其中 0<b^2< = d<(b+1)2< = 10^18,n< = 10^18,并且 b mod 2=1,d mod 4=1

題目鏈接:

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

Solution

    題解PoPoQQQ?。。。膜拜orz。。。。

    思路太神了!!特征方程什么的蒟蒻表示完全不會!!

    注意:取模的時候注意要用快速乘。。。。

代碼

#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> #define LL long long #define ULL unsigned long long #define mod 7528443412579576937 using namespace std; ULL qui(ULL a,ULL b){ULL s=0;while(b){if(b&1)s=(s+a)%mod;b>>=1;a=(a+a)%mod;}return s; } struct jz{ULL x[2][2];friend jz operator *(const jz &a,const jz &b){jz tmp;for(int i=0;i<2;i++)for(int j=0;j<2;j++){tmp.x[i][j]=0;for(int k=0;k<2;k++)tmp.x[i][j]=(tmp.x[i][j]+qui(a.x[i][k],b.x[k][j]))%mod;}return tmp;} }A,T; void pow(ULL z){while(z){if(z&1)T=T*A;z>>=1;A=A*A;} } int main(){ULL b,d,n,b2,f=0;cin>>b>>d>>n;if(n==0){printf("1\n");return 0;}b2=qui(b,b);A.x[0][0]=b;A.x[0][1]=1;A.x[1][0]=((d-b2)/4)%mod;A.x[1][1]=0;T.x[0][0]=b;T.x[0][1]=2;T.x[1][0]=0;T.x[1][1]=0;pow(n-1);if(d!=b2&&n%2==0) f=1;T.x[0][0]=(T.x[0][0]-f+mod)%mod;cout<<T.x[0][0]<<endl;return 0; }

  

  

This passage is made by Iscream-2001.

?

轉載于:https://www.cnblogs.com/Yuigahama/p/7800487.html

總結

以上是生活随笔為你收集整理的BZOJ 4002--有意义的字符串(矩阵乘法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。