【題目描述】
你有乙個揹包,你要往裡面塞一些立方體。每次,在保證揹包裡所有立方體的體積和不超過揹包容量的前提下,你會選擇乙個邊長為整數且盡可能大的立方體塞進揹包裡。
揹包的容量為[1,n]中的整數,你想知道你最多能拿到多少個立方體,以及在此前提下,揹包容量的最小值和最大值。
【輸入資料】
一行乙個整數n。
【輸出資料】
三行,每行乙個整數,分別表示最多立方體個數,容量最小值和容量最大值。
【樣例輸入】
14【樣例輸出】77
14【資料範圍】
對於20%的資料,n<=1000。
對於40%的資料,n<=100000。
對於100%的資料,1<=n<=10^15
【題解】
ysy題解搬運
考慮最終取到的立方體,從小到大排序後要滿足x1^3+x2^3+…+xi^3<(xi+1)^3。
考慮前兩問,從x1開始逐步確定每個數,顯然xi越小,後面的限制也越寬鬆,所以貪心取最小的即可。
考慮第三問。首先我們發現,由於取立方體時是從大到小取的,因此對於兩種方案,如果x[i+1]=y[i+1],x[i+2]=y[i+2],..,x[m]=y[m],並且xi>yi,那麼x一定比y大
#include#include#include
#include
#define il inline
using
namespace
std;
typedef
long
long
ll;ll n,p,q,t,tot,x[
1000001
];ll s(ll a)
il void
init()
cout
q=p;t=n-p;
for(int i=tot;i>0;i--)
p+=s(x[i]);
t=min(t,s(x[i]+1)-s(x[i])-q-1
); }
cout
}int
main()
資料立方體
總體介紹 首先模擬乙個資料分析場景,某企業積累了如下 所示的銷售資料 中每一行表示某個時間段內某種商品在某個地區的銷售情況。很明顯,這些資料涉及到了時間 地區 產品三個業務角度。在對這樣的資料進行分析時,不同的角色都會基於自己所感興趣的業務角度提出問題 銷售經理關心各個地區的銷售情況,希望找出銷售增...
建立立方體
imanualobject cube cube scenemgr.createmanualobject cube cube.begin examples anchor operationtype.ot list 頂點 cube.position 100,100,100 0 cube.position...
資料立方體 解密
資料立方體和傳統資料庫的差別在於資料立方體即cube把很多原來要用資料庫的group by操作來達到的效果通過其獨有的儲存形式予以加速,使用者可以方便地下鑽,切面 看到各種聚合的資料的結果。試想一下,如果乙個cube擁有3個維度,為了計算在各個維度上的聚合,就要進行2 3次計算,如果有10個維度就要...