取模方程解的個數 (迴圈節)
1046: 取模方程解的個數
時間限制: 1 Sec 記憶體限制: 128 MB
提交: 346 解決: 9
[提交][狀態][討論版][命題人:cyh]
題目描述
給定x和m,問在區間[a,b]上存在多少個i,使得x^i % 1000 = m。
輸入
輸入由多組資料構成。
每組資料一行,由四個空格分開的整數x、m、a和b組成。
0 <= x, m <= 1000000000
1 <= a <= b <= 1000000000
輸出
每組輸入資料產生一行輸出,即使得上述等式成立的i的個數。
樣例輸入
13 13 1 100
13 12 1 100
13 13 1 1000000000
樣例輸出
1
0
10000000
找
#include<bits/stdc++.h> using namespace std; typedef long long LL; LL quickpow(LL x,LL i,LL m) { LL ans=1; while(i) { if(i&1) ans=(ans*x)%m; i=(i>>1); x=(x*x)%m; } return ans; } int main() { LL x,m,a,b; while(scanf("%lld%lld%lld%lld",&x,&m,&a,&b)==4) { if(m>=1000) { printf("0\n"); continue; } LL L,R,cnt=0,ans=0; for(LL i=a;i<=b;) { if(i-a>=200&&cnt<2) break; if(cnt==2) { ans+=(b-R)/(R-L); break; } if(quickpow(x,i,1000)==m&&cnt==0) cnt++,L=i; else if(quickpow(x,i,1000)==m&&cnt==1) cnt++,R=i; i++; } if(cnt<=1) printf("%lld\n",cnt); else printf("%lld\n",ans+2); } }
相關推薦
取模方程解的個數 (迴圈節)
1046: 取模方程解的個數 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 346 解決: 9 [提交][狀態][討論版][命題人:cyh] 題目描述 給定x和m,問在區間[a,
取模方程解的個數
題目描述 給定x和m,問在區間[a,b]上存在多少個i,使得xi % 1000 = m。 輸入 輸入由多組資料構成。 每組資料一行,由四個空格分開的整數x、m、a和b組成。 0 <= x
POJ:2406-Power Strings(尋找字串迴圈節)
Power Strings Time Limit: 3000MS Memory Limit: 65536K Description Given two strings a and b we define a*b to be their con
用牛頓方法解一元非線性方程的根(Matlab實現)
題目:用牛頓法求方程x-cos(x)=0的實根(精確到1E-6)。 (1)要求用函式呼叫。 (2)進一步研究和絃截法作比較。 演算法分析: (1) 此題是利用牛頓方法解一元非線性方程的根。(牛頓法是把非線性方程區域性線性化的一種方法,它在單根附近具有較高的收
HDU-1358-Period(KMP求字首迴圈節)
博主連結 題目 題意: 給定一個字串,求出所有迴圈的字首串, 輸出字首串的長度和迴圈的次數(大於一才算迴圈串) 解題思路: 思路是先構造出 next[] 陣列,下標為 i, 定義一個變數 j = i - next[i] 就是next陣列下標和下標對應值的差
2016多校訓練一 PowMod,hdu5728(尤拉函式+指數迴圈節)
Declare:k=∑mi=1φ(i∗n)mod1000000007n is a square-free number.φ is the Euler's totient function. find:ans=kkkk...kmodp There are infini
POJ—2406—kmp(迴圈節1)
Power Strings Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc" and b = "def" then a*b = "abcd
快速冪取模詳解(C語言版)
在百度文庫上下載的快速冪詳解,作者給出快速冪演算法的完整解釋(雖然我也還沒看懂,但是確實寫的很好,正在仔細研究中)用的是C語言,不同語言的讀者只好換個位啦,畢竟讀C的人較多~(原網址http://wenku.baidu.com/link?url=AQNEjQ6S-31iyR
HDU—3746—kmp(迴圈節2)
Cyclic Nacklace CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, without any surprise
Cyclic Nacklace(HDU-3746)(KMP迴圈節)
CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, without any surprise, there are only 99.9 yuan left.
卡特蘭數(catalan數)總結 (卡特蘭大數、卡特蘭大數取模、卡特蘭數應用)
本文講解卡特蘭數的各種遞推公式,以及卡特蘭數、卡特蘭大數、卡特蘭大數取模的程式碼實現,最後再順帶提一下卡特蘭數的幾個應用。 什麼是卡特蘭數呢?卡特蘭數無非是一組有著某種規律的序列。重要的是它的應用。
UVA 455 Periodic Strings(字串的迴圈節)
UVA 455 Periodic Strings A character stringis said to have periodk if it can be formed by concatenating one or morerepetitions of anot
C/C++中取模符號“%”的用途 (獲取一系列數值)
我們知道,當A與N取模時(A%N),當A大於N, 只要A的值在變化,那麼 A%N 的結果可以取到 0,1,2,……N-1 之間的任意一個值, 所以,利用這一點,我們可以在程式中定義一個變數flag (int flag;) , 初始化時flag=0; 再要改變的地方,呼叫
JavaScript設計模式:一、面向對象編程(第二節)
得到 調用 帶來 方式 get 特權 style 方法封裝 面向對象 一、封裝 面向對象編程思想其中的一個特點就是封裝,通俗的講法就是把需要的功能方向在一個對象裏。遺憾的是,對於JS這種解釋性的弱類型語言沒有經典強類型語言中那樣通過class等關鍵字實現類的封裝方法,j
Pixhawk---超聲波模塊加入說明(I2C方式)
gef -m 淘寶 .net track cti shee gpa oba 1 說明 ??在Pixhawk的固件中,已經實現了串口和i2c的底層驅動,並不須要自己去寫驅動。通過串口的方式加入超聲波的缺點是串口不夠。不能加入多個超聲波模塊,此時須要用到i
angular路由詳解四(子路由)
str edr bsp 絕對路徑 pat outer menu one const 子路由是相對路由 路由配置部分: 主要是children const routes: Routes = [ {path:‘home‘, component: HomeComponent,
樹莓派小車(二)樹莓派、小車和紅外線模塊連接(多圖)
post ges pos logs -m img gem 讀者 alt 正文之前 上一篇文章介紹了小車底盤以及驅動板的安裝,這一次來講一講樹莓派與驅動板以及紅外線模塊的安裝。 正文 1. 樹莓派的GPIO引腳定義: 樹莓派的GPIO引腳共分為兩種類型,一種是PHYSIC
Maven的pom.xml文件結構之基本配置packaging和多模塊聚合結構(微服務)
second maven項目 支持 其中 jar maven 所有 了解 ack 1. packaging packaging給出了項目的打包類型,即作為項目的發布形式,其可能的類型。在Maven 3中,其可用的打包類型如下: jar,默認類型 war ejb ear r
Scala筆記整理(四):Scala面向對象—類詳解2(繼承相關)
大數據 Scala [TOC] 單例 希望某個類只存在一個使用的對象,而不管有多少個調用者在使用它,就是單例的概念。 Java中的單例 package cn.xpleaf.single; /** * 單例模式-餓漢式(在屬性中先創建好對象,不管是否調用getInstance方法) * @auth
消失模設計與加工(FM-CAM)
ext 技術 避免 定制 方便 mark 結構 計算 term FM-CAM是華天軟件專門針對泡沫加工而開發的一套設計與加工的專業工具包。它可將設計模型與相關數據直接傳遞進來達到充分利用三維實體模型的目的,提供了模型查驗與修正、面一起著色、快速識別並附加加工余量、切片分層、