題鏈:
題解:
。。。技巧題吧
先看看題目讓求什麼:
令$f(x)=\sum_^(\lfloor a[i]/x \rfloor +a[i]$%$x)$
要求輸出最小的f(x)。
首先不難看出,x的取值不會超過最大的a[i]+1,(因為之後的答案都和x==a[i]+1時的答案相同)
把式子化為如下形式:
$f(x)=\sum_^(\lfloor a[i]/x \rfloor +(a[i]-\lfloor a[i]/x \rfloor x))$
$\quad\quad=\sum_^(a[i]-\lfloor a[i]/x \rfloor (1-x))$
$\quad\quad=sum-\sum_^(\lfloor a[i]/x \rfloor (1-x))$
$\quad\quad=sum+\sum_^(\lfloor a[i]/x \rfloor (x-1))$
現在即是要找出最大的$\sum_^(\lfloor a[i]/x \rfloor (x-1))$
然後我們令$t=\lfloor a[i]/x \rfloor$
(把a從小到大排序後)對於每乙個列舉的x,
不難發現,隨著a[i]的增大,t也是在單增,而且t的取值還是一段一段的。
即對於$a[i]∈ [\lambda x,(\lambda+1)x-1] $,t的取值都是$\lambda$
所以我們可以用字尾和或者字首和的方法對於每乙個列舉的x,快速求出$\sum_^(\lfloor a[i]/x \rfloor (x-1))=\sum_^t (x-1)$
使得總複雜度為 o(nlogn)
**:
#include#include#include#define maxn 1000050#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
int cnt[maxn];
int main()
printf("%lld",sum-ans);
return 0;
}
優化mysql的21個建議 MySQL優化小建議
mysql優化小建議 洛逸發布於 2019 11 04 12 03 背景 那啥,你過來一下!怎麼了?我 都單元測試了的,沒出問題啊!我一臉懵逼跑到運維大佬旁邊。你看看!你看看!多少條報警,趕快優化一下!運維大佬簡訊列表裡面50多條mysql cpu 100 報警簡訊。再看看專案名稱不就是我前幾天剛發...
SQL優化(二) 2 1索引分類
索引是資料庫中較常用的優化手段之一,下面讓我們看看索引的分類和使用 索引的儲存分類 索引是在mysql 的儲存引擎層中實現的,而不是在伺服器層實現的。意味著每種儲存引擎的索引都不一定完全相同,也不是所有的儲存引擎都支援所有的索引型別。下面是三個比較常用的引擎支援的索引型別比較 myisam,memo...
2 1 優化神經網路(上)
3 其他的一些解決過擬合的方法 3.1 data augmentation 資料增加 3.2 early stopping 4 加快訓練速度的方法 4.1 early stopping 4.2 歸一化輸入 5 梯度消失和梯度 及其解決 6 梯度檢驗 都遍歷神經網路的每一層,並設定消除神將網路中節點的...