數字(number)
time limit:2000ms memory limit:128mb
題目描述
lyk定義了乙個新的計算。
具體地,一開始它有兩個數字a和b。
每一步,它可以將b增加1,或者將a乘上b。
也就是說(a,b)經過一次操作後可以變成(a,b+1)或者(a*b,b)。再經過一次操作可以變成(a,b+2)或者(a*(b+1),b+1)或者(a*b,b+1)或者(a*b*b,b)。接下來都類似……它認為只有在這個括號左側的數字才是有意義的,並且它想執行的運算元不會很多。
具體的,如果lyk能通過不超過p步,使得這個括號內左側的數字變成x,那麼x就是乙個有意義的數字!
但zhw覺得這個題目太難了,會為難大家,於是他將這個問題中初始的a定義為了1,把b定義為了0。
lyk想知道在一段區間[l,r]中,存在多少有意義的數字。
輸入格式(number.in)
第一行3個數分別表示l,r,p。
輸出格式(number.out)
乙個數表示答案。
輸入樣例1
1 100 10
輸出樣例1
46輸入樣例2
233 233333333 50
輸出樣例2
332969
資料範圍
對於30%的資料l,r<=10。
對於另外20%的資料p<=20。
對於70%的資料1<=l<=r<=1000,1<=p<=50。
對於90%的資料1<=l<=r<=1000000,1<=p<=50。
對於100%的資料1<=l<=r<=500000000,1<=p<=50。(這乙個點蒟蒻不會啦)
用搜尋,加上一些剪枝就可以達到九十分了。
#include
#include
#include
#include
#include
#include
using
namespace
std;
int l,r,p,ans;
bool f[1000009];
void dfs(int a,int b,int step)
int main()
高階的暴力(一) 分塊
在某大佬的幫助下我今天get到了分塊 簡單來說分塊就是可以把塊分成某些奇怪的大小,使之達到優秀的複雜度。but我現在只會把塊分成根號大小,然後我們修改乙個點的 資訊時就可以順便修改次點所在塊的資訊 o 1 接著當我們查詢 l,r 這段區間,的時候,對於中間的大塊可以直接拿來用,對於兩 邊不完整的塊則...
P1713 麥當勞叔叔的難題(90分)
話說我們銘銘小朋友成功的回答了爸爸的問題,自然少不了要去索要些獎勵,摳門的爸爸一看報紙,嘿,門口的麥當勞在搞活動,還有免費午餐哦,不過前提條件 得正確回答麥當勞叔叔的問題。問題是這樣描述的 我面前有很多個小朋友,我希望你幫我找到乙個最聰明的小朋友。我心目中最聰明的就是第乙個跑進麥當勞大門的,我希望你...
開發人員本身是90分的測試人員
曾聽說過谷歌公司內部沒有測試人員,這句話對我感觸很深。作為開發人員,真能將產品做得相對完美嗎?昨天下班跟做了兩年測試的同事聊起了這個話題。他說,要做乙個出色的測試人員,就是將自己當作上帝,自己就是產品經理,自己心中,應該有乙個相對成熟的產品印象,它應該是怎樣的,命令下發應該按照什麼順序,有什麼效果,...