number 90分的暴力

2022-05-13 23:05:07 字數 1156 閱讀 3485

數字(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分的測試人員

曾聽說過谷歌公司內部沒有測試人員,這句話對我感觸很深。作為開發人員,真能將產品做得相對完美嗎?昨天下班跟做了兩年測試的同事聊起了這個話題。他說,要做乙個出色的測試人員,就是將自己當作上帝,自己就是產品經理,自己心中,應該有乙個相對成熟的產品印象,它應該是怎樣的,命令下發應該按照什麼順序,有什麼效果,...