嚯呀
第一次寫部落格來著
題目
求給定區間[x,y]中滿足下列條件的整數個數,這個數恰好等於k個互不相等的b的整數次冪之和
input
15 20
2 2
out
17 18 20
示例:17=2^4+2^0 18=2^4+2^1 20=2^4+2^2
為什麼15和16不行呢???
因為15=2^3+2^2+2^1+2^0
此時k>2明顯不成立
而16=2^3+2^3
此時b明顯相等就無法通過
其實我們可以把它當成b進製的數來算(其實我也是聽老師講的)
在這裡我們把它化成一棵樹
然後轉化成0,1的格式,去尋找它的一的數量是否符合所要求的數
(好醜,其實是閒著蛋疼畫的【圖不一定是對的只是為了看得明顯一點......】)
這樣就可以在樹里尋找所滿足條件的結果
為什麼用0和1呢
because of
17=2^4+2^0
18=2^4+2^1
20=2^4+2^2
這個實際上就是b進製數
如下:
17=1*2^4+0*2^3+0*2^2+1*2^1+0*2^0
17=10001
同理18=10010 20=10100
15=1111 16=10000
所以說可以在樹中找它的1的數量就可以找出答案
//對f進行預處理(變得多多的。。。)
void init()
}
為了給它放進樹里所做的努力!!!
然後去搜尋樹中的1,一般情況下左子樹的1要比右子樹的一來得少
【上面的圖好像有點錯】
當滿足條件時就可以記錄下來
上面的例子中可以看出有兩個1即可
此時就可以儲存。。。
int cal(int x,int k)
}if((tot+x)==k) ans++;
return x;
}
答案的輸出
cal
(y,k)-cal
(x-1,k)
這個答案的取值
嗯……
用上面做示範:
就是:
[1,20]–[1,14]=[15,20]
基本沒錯啦(這個[x,y]是區間的意思)
這樣可以找到答案
(如果有錯敬請各位大佬指出)
跪地求rp
最開心的一節課
今天上課講的是photoshop 修飾,首先給學生講的是將乙個黑白 的mm變成彩色的plmm,學生學習的興致都很高啊 第二個任務是將乙個滿臉蒼夷的mm變成乙個很藝術的mm,學生看到原照不禁大叫倒胃口,赫赫,拿這樣的教學來加深他們的印象也未嘗不可。不過大家都學得挺認真的,呵呵,實用嘛。下課時我教育他們...
第一節課的部落格
得得得得 得得得得 得得得得 得得得得 得得得得 大於號加你要引用的句子 少壯不努力,老大徒傷悲 三個 三個 點選跳轉到我的ab c減號加空格 名字性別 年齡張三男18 dadasd ctrl c 複製 ctrl v 貼上 ctrl a 全選 ctrl x 剪下 ctrl z 撤銷 ctrl s 儲...
最好的一節課 魏明偉
最好的一節課 csdn 短短的倆小時,讓我從心底裡明白了,啥叫做快樂學習,不知不覺中掌握了知識,自己都不知道,做作業時才發現進步了這麼多。歡悅的課堂氣氛,幽默的講師,投入的學生,讓我有了極大的興趣。這是我上學以來收穫最多的一節了,要是專業課跟這一樣的話,我的人生一定是錢途無量,呵呵,小自豪一把。世間...