CODEVS 2669 簡單的試煉

2021-08-09 08:45:07 字數 1034 閱讀 2084

題目描述 description

已知乙個數s,求x和y,使得2^x+3^y=s.

輸入描述 input description

(多組資料)

每行乙個整數s,當s=0時輸入結束.

輸出描述 output description

x和y,以2^x+3^y=s的形式輸出,若有多組解,輸出x最小的那組.

樣例輸入 sample input 13

330

樣例輸出 sample output

2^2+3^2=13

2^5+3^0=33

資料範圍及提示 data size & hint

對於30%的資料  s≤50,000,000 , 資料組數≤5000

對於50%的資料  s≤3,000,000,000 , 資料組數≤20000

對於80%的資料  s≤3,000,000,000,000 , 資料組數≤50000

對於100%的資料 s≤200,000,000,000,000, 資料組數≤80000

暴力列舉 

可以看出

x最大為log2(s)

那麼 處理處x的範圍

列舉可能的x 找對應的y

在快速冪檢驗盡可以ac了

1 #include2 #include3 #include4

#define ll long long

5using

namespace

std;

6ll s;

7 inline void read(ll&x)

10while(c>='

0'&&c<='

9')

11 x=x*f;12}

13inline ll pow1(ll x,ll y)

1421

return

base;22

}23intmain() 34}

35}36return0;

37 }

**

洛谷 P2669 金幣

題目描述 國王將金幣作為工資,發放給忠誠的騎士。第一天,騎士收到一枚金幣 之後兩天 第二天和第三天 每天收到兩枚金幣 之後三天 第 四 五 六天 每天收到三枚金幣 之後四天 第 七 八 九 十天 每天收到四枚金幣 這種工資發放模式會一直這樣延續下去 當連續n天每天收到n枚金幣後,騎士會在之後的連續n...

洛谷 P2669 金幣

題目描述 國王將金幣作為工資,發放給忠誠的騎士。第一天,騎士收到一枚金幣 之後兩天 第二天和第三天 每天收到兩枚金幣 之後三天 第 四 五 六天 每天收到三枚金幣 之後四天 第 七 八 九 十天 每天收到四枚金幣 這種工資發放模式會一直這樣延續下去 當連續n天每天收到n枚金幣後,騎士會在之後的連續n...

bozj2669(容斥 狀壓dp)

一張圖最多8個區域性最小值。dp i j 表示正在填從小到大第i個數,區域性最小值所在的位置已被填的情況為j時的方案數 p i 為區域性最小值所在的位置已被填的情況為j時,所有可以填數的位置數。x為沒被填的區域性最小值,x的周圍都不能填,如果填了x就不是區域性最小值了!所以才會存在可以填數的位置數 ...