題目 題意
給你乙個n 讓你拆成若干數 使他們乘積最大
思路如果能整除3 拆3最大 否則拆1個或2個2 在拆3
算乘積可以用大數模擬 學fft學啥了 直接用了fft
#include using namespace std;
typedef long long ll;
const double pi = acos(-1.0);
struct complex
complex operator - (const complex &b) const
complex operator + (const complex &b) const
complex operator * (const complex &b) const
};void change(complex y, int len)
k = len/2;
while(j >= k)
if(j < k)
}return ;
}void fft(complex y,int len,int on)
m = n / 3;
int len = 1 << 13;
x[0] = complex(3,0);
y[0] = complex(1,0);
for(int i = 1; i < len; i++)
x[i] = complex(0,0);
for(int i = 1; i <= len; i++)
y[i] = complex(0,0);
fft(x,len,1);
fft(y,len,1);
// cout<0&&sum[len] == 0)
len--;
printf("%d\n",len+1);
for(int i = len,j = 0; i >= 0; i--,j++)
return 0;
}
bzoj1263 SCOI2006 整數劃分
傳送門 我們可以求出滿足xx 1 x 1 x 且xx 1 x 1 x 的整數x 然後手玩一下發現x 3 所以要盡可能的多拆出3。不難得到以下方案 1.n 3 0 拆成n 3個3 2.n 3 1 拆成n 3 1個3,2個2 3.n 3 2 拆成n 3個3,1個2 高精度一發水過。uses math v...
bzoj1263 SCOI2006 整數劃分
題目 數學結論題 先考慮全分成實數,根據基本不等式,這些數要全部相等才最大。則設其為x,求x n x 最大,具體證明我當然不會 據說是先取對數,在證明 結論是,x取自然對數時最大,即e,2.7幾幾幾。最接近的整數為3,所以盡量取3,不夠取2,顯然不取1。include using namespace...
BZOJ1263 SCOI2006 整數劃分
從檔案中讀入乙個正整數n 10 n 31000 要求將n寫成若干個正整數之和,並且使這些正整數的乘積最大。例如,n 13,則當n表示為4 3 3 3 或2 2 3 3 3 時,乘積 108為最大。只有乙個正整數 n 10 n 31000 133 108由於對於 a 1,b 1 有 ab geq a ...