HDU-5895 Mathematician QSC

題目大意:

已知f[0] = 0, f[1] = 1, f[i] = f[i-1] * 2 + f[i-2],且g[n] = g[n-1] + f[n] * f[n],現在給出n,y,x,s,問你x^(g[n*y]) mod (s + 1)的值為多少。

解題思路:

首先可以得到的是g[n] = f[n] * f[n+1] / 2

證明方式就是xjb打表加上猜加上數學歸納法,別問我怎么猜到的我是用了這個網站http://oeis.org/

因此g[n]可以很輕松的得到了。那么現在的問題就是a^b mod p的值應該怎么求

這里提供一份關于求解這個值的非常詳細的博客:傳送門

代碼:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;typedef long long LL;
typedef pair<LL, LL> pi;LL euler(LL n) {LL ans = n;for (LL i = 2; i * i <= n; ++i) {if (n % i == 0) {ans -= ans / i;while (n % i == 0)n /= i;}}if (n > 1) ans -= ans / n;return ans;
}
LL fastMul(LL a, LL b, LL mod) {LL ans = 1;while (b) {if (b & 1) ans = (ans * a) % mod;b >>= 1;a = (a * a) % mod;}return ans;
}
pi fastMatrix(LL n, LL mod) {LL t11, t12, t21, t22;LL bas[4] = {2, 1, 1, 0};LL ans[4] = {1, 0, 0, 1};while (n) {if (n & 1) {t11 = ((ans[0] * bas[0]) % mod + (ans[1] * bas[2]) % mod) % mod;t12 = ((ans[0] * bas[1]) % mod + (ans[1] * bas[3]) % mod) % mod;t21 = ((ans[2] * bas[0]) % mod + (ans[3] * bas[2]) % mod) % mod;t22 = ((ans[2] * bas[1]) % mod + (ans[3] * bas[3]) % mod) % mod;ans[0] = t11; ans[1] = t12; ans[2] = t21; ans[3] = t22;}n >>= 1;t11 = ((bas[0] * bas[0]) % mod + (bas[1] * bas[2]) % mod) % mod;t12 = ((bas[0] * bas[1]) % mod + (bas[1] * bas[3]) % mod) % mod;t21 = ((bas[2] * bas[0]) % mod + (bas[3] * bas[2]) % mod) % mod;t22 = ((bas[2] * bas[1]) % mod + (bas[3] * bas[3]) % mod) % mod;bas[0] = t11; bas[1] = t12; bas[2] = t21; bas[3] = t22;}return make_pair(ans[0], ans[2]);
}
LL solve(LL n, LL y, LL x, LL s) {LL eul = euler(s + 1);pi tmp = fastMatrix(n * y, eul * 2);LL N = ((tmp.first * tmp.second) % (eul * 2)) / 2 + eul;return fastMul(x, N, s + 1);
}
int main() {LL n, y, x, s, t;scanf("%lld", &t);while (t--) {scanf("%lld%lld%lld%lld", &n, &y, &x, &s);printf("%lld\n", solve(n, y, x, s));}return 0;
}


轉載于:https://www.cnblogs.com/wiklvrain/p/8179351.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254389.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254389.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254389.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#的兩種類據類型:值類型和引用類型

目錄什么是值類型&#xff0c;什么是引用類型概念&#xff1a;值類型和引用類型區別什么是值類型&#xff0c;什么是引用類型 概念&#xff1a; 值類型直接存儲其值&#xff0c;而引用類型存儲對其值的引用。部署&#xff1a;托管堆上部署了所有引用類型。 引用類型&#xf…

ring0 ring3 kernel driver

intel cpu的權限訪問控制&#xff1a;ring0 ~ ring5. window、linux操作系統都只用了ring0&#xff0c;ring3&#xff0c;對應內核態和用戶態. 驅動程序工作在內核態&#xff0c;沒有main函數入口&#xff0c;而應用程序工作在用戶態。轉載于:https://www.cnblogs.com/yiii/p/6…

Linux 的多線程編程的高效開發經驗

轉自&#xff1a;http://www.chineselinuxuniversity.net/articles/22615.shtml 本文中我們針對 Linux 上多線程編程的主要特性總結出 5 條經驗&#xff0c;用以改善 Linux 多線程編程的習慣和避免其中的開發陷阱。在本文中&#xff0c;我們穿插一些 Windows 的編程用例用以對…

Visual C++中error spawning cl.exe解決辦法

| 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 今天安裝Vc6.0的時候出現了一個error spawning cl.exe的錯誤&#xff0c;在網上找了一些資料&#xff0c;才知道這是因為路徑設置的問題引起的&#xff0c; “cl.exe”是VC真正的程序編譯器&…

C#整數數據類型

文章目錄博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 數據類型含義取值范圍sbyte有符號8位整數-128 ~ 127&#xff08;-2^7 ~ 2^7-1&#xff09;byte無符號8位整數0 ~ 255&#xff08;0 ~ 2^8-1&#xff09;short有符號16位整數-32768 ~ 3…

HEXA機器人榮獲CES Asia2018 創新獎

2019獨角獸企業重金招聘Python工程師標準>>> 6月13日至15日&#xff0c;亞洲消費電子展CES Asia 2018將在上海新國際博覽中心如期舉行。在活動到來前&#xff0c;美國消費技術協會&#xff08;CTA&#xff09;于5月24日&#xff0c;提前揭曉了“2018亞洲消費電子展創…

【bzoj3994】[SDOI2015]約數個數和 莫比烏斯反演

題目描述 設d(x)為x的約數個數&#xff0c;給定N、M&#xff0c;求 輸入 輸入文件包含多組測試數據。 第一行&#xff0c;一個整數T&#xff0c;表示測試數據的組數。接下來的T行&#xff0c;每行兩個整數N、M。輸出 T行&#xff0c;每行一個整數&#xff0c;表示你所求的答案…

Linux根文件系統結構再認識

Linux根文件系統結構再認識劉建文&#xff08;http://blog.csdn.net/keminlau &#xff09; INTRO 盡管Linux的根文件系統在形式表現上是一體的&#xff08;所有數據目錄均為根目錄下的子目錄&#xff09;&#xff0c;但實際它們是多個不同的【邏輯主體】&#xff08;為了實現…

C#浮點數據類型

文章目錄博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 數據類型含義取值范圍有效數字位數float32位浮點數1.5X10^-45 ~ 3.4X10^387double64位浮點數5.0X10^-324 ~ 1.7X10^30815 ~ 16 注意&#xff1a; 浮點數有一定的取值范圍和有效數字限制…

在Window10上使用Ubuntu終端

在Windows10上使用Ubuntu終端 習慣了ubuntu的開發&#xff0c;回到windows的command可以說是很絕望了。之前偶爾用windows時一直用git-bash來代替。但是發現windows已經添加了對ubuntu子系統的支持&#xff0c;那直接用不是更爽。 1.安裝 進入控制面板&#xff0c;開啟適用于Li…

httpClient實現微信公眾號消息群發

1、實現功能  向關注了微信公眾號的微信用戶群發消息。&#xff08;可以是所有的用戶&#xff0c;也可以是提供了微信openid的微信用戶集合&#xff09; 2、基本步驟 前提&#xff1a; 已經有認證的公眾號或者測試公眾賬號 發送消息步驟&#xff1a; 發送一個請求微信去獲取ac…

為靜態博客生成器WDTP移植了一款美美噠主題

前言 關于這個主題的移植后公布&#xff0c;我已經聯系了主題作者并取得同意&#xff0c;這個主題是一夜涕所寫的Sgreen&#xff0c;預覽圖見下 關于WDTP 就是一個很方便很便攜很快速的cpp編寫的帶gui跨平臺的開源的靜態博客生成器&#xff0c;軟件作者更新記錄在V站可以找到,軟…

TCP/IP數據包結構分析

一般來說&#xff0c;網絡編程我們只需要調用一些封裝好的函數或者組件就能完成大部分的工作&#xff0c;但是一些特殊的情況下&#xff0c;就需要深入的理解 網絡數據包的結構&#xff0c;以及協議分析。如&#xff1a;網絡監控&#xff0c;故障排查等…… IP包是不安全的&am…

C#decimal數據類型

文章目錄博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 為適應高精度的財務和貨幣計算的需要&#xff0c;C#提供了十進制decimal類型。decimal類型數據特征如下表所示&#xff1a; 數據類型含義取值范圍有效數字位數decimal128位高精度十進制…

世界杯快到了,看我用Python爬蟲實現(偽)球迷速成!

還有4天就世界杯了&#xff0c;作為一個資深&#xff08;偽&#xff09;球迷&#xff0c;必須要實時關注世界杯相關新聞&#xff0c;了解各個球隊動態&#xff0c;這樣才能在一堆球迷中如&#xff08;大&#xff09;魚&#xff08;吹&#xff09;得&#xff08;特&#xff09;水…

Bootstrap學習筆記(四)-----Bootstrap每天必學之表單

本文主要講解的是表單&#xff0c;這個其實對于做過網站的人來說&#xff0c;并不陌生&#xff0c;而且可以說是最為常用的提交數據的Form表單。本文主要來講解一下內容&#xff1a; 1.基本案例2.內聯表單3.水平排列的表單4.被支持的控件5.靜態控件6.控件狀態7.控件尺寸8.幫助文…

LVS--NAT模型配置

環境準備 管理IP地址角色備注192.168.11.131調度器&#xff08;Director&#xff09;對外提供VIP服務的地址為192.168.1.114192.168.11.132RS1 網關為192.168.11.131192.168.11.129RS2 網關為192.168.11.131將Directory開啟內核轉發 Linux系統默認是禁止數據包轉發的。所謂轉發…

STL中list的使用(理論)

STL中的list就是一雙向鏈表&#xff0c;可高效地進行插入刪除元素。現總結一下它的操作。文中所用到兩個list對象c1,c2分別有元素c1(10,20,30) c2(40,50,60)。還有一個list<int>::iterator citer用來指向c1或c2元素。list對象的聲明構造()&#xff1a;A. list<in…

C#數據類型轉換—使用Convert類轉換

文章目錄簡介用例博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 簡介 System.Covert類就是專門進行類型轉換的類&#xff0c;Convert類提供的方法可以實現各種進本數據類型之間的轉換。Convert類的常用方法如下表&#xff1a; 方法說明ToBo…

服務器租用單線、雙線、bgp 相比有哪些區別優勢?

2019獨角獸企業重金招聘Python工程師標準>>> 在IDC行業中&#xff0c;服務器的穩定性、安全性是考核服務商的主要指標&#xff0c;影響這兩個指標的因素有很多&#xff0c;其中比較重要的有三個&#xff0c;分別是服務器的配置、機房骨干網寬帶和機房的線路。我們常…