題目描述 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就不是區域性最小值了!所以才會存在可以填數的位置數 ...