文章目录

  • 问题引入
  • 解法
  • slope trick
  • abc217H - Snuketoon

问题引入

CF713C
给出 n {n} n个整数 a 1 , a 2 , . . . , a n {a_1,a_2,...,a_n} a1​,a2​,...,an​,一次操作可以选择一个整数 a i {a_i} ai​使其变为 a i = a i − 1 + 1 {a_i=a_{i-1}+1} ai​=ai−1​+1或 a i = a i − 1 − 1 {a_i=a_{i-1}-1} ai​=ai−1​−1,问使得 a 1 < a 2 < . . . , a n {a_1<a_2<...,a_n} a1​<a2​<...,an​所需要的最小操作次数。
1 ≤ n ≤ 3000 1 ≤ a i ≤ 1 0 9 1\le n\le 3000\\ 1\le a_i\le 10^9 1≤n≤30001≤ai​≤109

解法

a i < a i + 1 ↔ a i ≤ a i + 1 − 1 {a_i<a_{i+1}\leftrightarrow a_i\le a_{i+1}-1} ai​<ai+1​↔ai​≤ai+1​−1。
首先令 a i = a i − i a_i=a_i-i ai​=ai​−i,问题等价于使 a 1 ≤ a 2 ≤ . . . ≤ a n a_1\le a_2\le ... \le a_n a1​≤a2​≤...≤an​需要的最小操作次数。
设 f i , x f_{i,x} fi,x​为前 i {i} i个数满足 a 1 ≤ a 2 ≤ . . . ≤ a i ≤ x a_1\le a_2\le...\le a_i\le x a1​≤a2​≤...≤ai​≤x所需要的最小操作次数。
有 f 1 , x = m i n y ≤ x ∣ y − a 1 ∣ f i , x = m i n y ≤ x ( f i − 1 , y + ∣ y − a i ∣ ) f_{1,x}=min_{y\le x}|y-a_1|\\ f_{i,x}=min_{y\le x}(f_{i-1,y}+|y-a_i|) f1,x​=miny≤x​∣y−a1​∣fi,x​=miny≤x​(fi−1,y​+∣y−ai​∣)
f i , x f_{i,x} fi,x​中 x x x的取值可以只考虑集合 { a 1 , a 2 , . . . , a n } \{a_1,a_2,...,a_n\} {a1​,a2​,...,an​}内的,因此这个 d p dp dp可以在 O ( n 2 ) O(n^2) O(n2)时间内解决,但下面可以把它优化到 O ( n l o g n ) O(nlogn) O(nlogn)。

slope trick

对 f i , x f_{i,x} fi,x​以 x x x为横坐标, f i , x f_{i,x} fi,x​为纵坐标,在 ( x , f i , x ) (x,f_{i,x}) (x,fi,x​)和 ( x + 1 , f i , x + 1 ) (x+1,f_{i,x+1}) (x+1,fi,x+1​)之间连一条直线,我们可以得到一个分段函数,这个分段函数在 x x x为整数处的斜率都为整数。

首先 f i , x f_{i,x} fi,x​是一个单调递减的函数。因为若 x 1 < x 2 x_1<x_2 x1​<x2​,则 a 1 ≤ a 2 ≤ . . . ≤ a i ≤ x 1 ≤ x 2 a_1\le a_2\le ...\le a_i\le x_1\le x_2 a1​≤a2​≤...≤ai​≤x1​≤x2​。

对 f i , x f_{i,x} fi,x​维护一个集合 S i = { s i , i − 1 , s i , i − 2 , . . . , s i , 0 } S_i=\{s_{i,i-1},s_{i,i-2},...,s_{i,0}\} Si​={si,i−1​,si,i−2​,...,si,0​}和 f i , s 0 f_{i,s_0} fi,s0​​的答案。
其含义为对于 x ∈ [ s i , j , s i , j − 1 ) ( i ≤ j ≤ 0 ) x\in [s_{i,j},s_{i,j-1})(i\le j\le 0) x∈[si,j​,si,j−1​)(i≤j≤0),有 f i , x + 1 − f i , x = − j f_{i,x+1}-f_{i,x}=-j fi,x+1​−fi,x​=−j(即函数 f i , x f_{i,x} fi,x​在点 x x x处的斜率为 − j -j −j,特别的 s i , i = − ∞ , s i , − 1 = ∞ s_{i,i}=-\infty,s_{i,-1}=\infty si,i​=−∞,si,−1​=∞)。
由 f i , x f_{i,x} fi,x​的单调性有 s i , i − 1 ≤ s i , i − 2 ≤ . . . ≤ s i , 0 s_{i,i-1}\le s_{i,i-2}\le ...\le s_{i,0} si,i−1​≤si,i−2​≤...≤si,0​

现在假设求出了 S i − 1 S_{i-1} Si−1​和 f i − 1 , s 0 f_{i-1,s_0} fi−1,s0​​,现在求 S i S_i Si​,考虑三种情况:
1. x < a i 1. x< a_i 1.x<ai​, f i − 1 , x f_{i-1,x} fi−1,x​在点 x x x处的斜率为 − j ( j ≥ 0 ) -j(j\ge 0) −j(j≥0)(即 f i − 1 , x + 1 − f i − 1 , x = − j f_{i-1,x+1}-f_{i-1,x}=-j fi−1,x+1​−fi−1,x​=−j)
f i , x = f i − 1 , x + ( a i − x ) f i , x + 1 = f i − 1 , x + 1 + ( a i − ( x + 1 ) ) = f i − 1 , x − j + a i − x − 1 f i , x + 1 − f i , x = − j − 1 f_{i,x}=f_{i-1,x}+(a_i-x)\\ f_{i,x+1}=f_{i-1,x+1}+(a_i-(x+1))=f_{i-1,x}-j+a_i-x-1\\ f_{i,x+1}-f_{i,x}=-j-1 fi,x​=fi−1,x​+(ai​−x)fi,x+1​=fi−1,x+1​+(ai​−(x+1))=fi−1,x​−j+ai​−x−1fi,x+1​−fi,x​=−j−1
故所有 x < a i x<a_i x<ai​的点的斜率减 1 1 1,即有 s i , j = s i − 1 , j − 1 ( s i − 1 , j − 1 < a i ) s_{i,j}=s_{i-1,j-1}(s_{i-1,j-1}<a_i) si,j​=si−1,j−1​(si−1,j−1​<ai​)

2. x ≥ a i 2.x\ge a_i 2.x≥ai​, f i − 1 , x f_{i-1,x} fi−1,x​在点 x x x处的斜率为 − j ( j > 0 ) -j(j> 0) −j(j>0)。
f i , x = f i − 1 , x + ( x − a i ) f i , x + 1 = f i − 1 , x + 1 + ( x + 1 − a i ) = f i − 1 , x − j + x + 1 − a i f i , x + 1 − f i , x = − j + 1 = − ( j − 1 ) f_{i,x}=f_{i-1,x}+(x-a_i)\\ f_{i,x+1}=f_{i-1,x+1}+(x+1-a_i)=f_{i-1,x}-j+x+1-a_i\\ f_{i,x+1}-f_{i,x}=-j+1=-(j-1) fi,x​=fi−1,x​+(x−ai​)fi,x+1​=fi−1,x+1​+(x+1−ai​)=fi−1,x​−j+x+1−ai​fi,x+1​−fi,x​=−j+1=−(j−1)
故当 x ≥ a i x\ge a_i x≥ai​且 x x x的斜率不为 0 0 0时,它的斜率加 1 1 1,有 s i , j = s i − 1 , j + 1 ( s i − 1 , j + 1 ≥ a i & & j + 1 > 0 ) s_{i,j}=s_{i-1,j+1}(s_{i-1,j+1}\ge a_i\&\& j+1>0) si,j​=si−1,j+1​(si−1,j+1​≥ai​&&j+1>0)

3. x ≥ a i 3.x\ge a_i 3.x≥ai​, f i − 1 , x f_{i-1,x} fi−1,x​在点 x x x处的斜率为 0 0 0。
f i , x = f i − 1 , x + ( x − a i ) f i , x + 1 = f i − 1 , x + 1 + ( x + 1 − a i ) = f i − 1 , x + x + 1 − a i f i , x + 1 − f i , x = 1 f_{i,x}=f_{i-1,x}+(x-a_i)\\ f_{i,x+1}=f_{i-1,x+1}+(x+1-a_i)=f_{i-1,x}+x+1-a_i\\ f_{i,x+1}-f_{i,x}=1 fi,x​=fi−1,x​+(x−ai​)fi,x+1​=fi−1,x+1​+(x+1−ai​)=fi−1,x​+x+1−ai​fi,x+1​−fi,x​=1
此时由于 a 1 ≤ a 2 ≤ . . . ≤ a i ≤ x ≤ x + 1 a_1\le a_2\le...\le a_i\le x\le x+1 a1​≤a2​≤...≤ai​≤x≤x+1,因此 f i , x + 1 f_{i,x+1} fi,x+1​取 f i , x f_{i,x} fi,x​答案反而更优,即 f i , x + 1 = m i n ( f i , x + 1 , f i , x ) = f i , x f_{i,x+1}=min(f_{i,x+1},f_{i,x)}=f_{i,x} fi,x+1​=min(fi,x+1​,fi,x)​=fi,x​。
因此如果 s i − 1 , 0 ≥ a i s_{i-1,0}\ge a_i si−1,0​≥ai​,则其不需要加入到 S i S_i Si​中。

基于上述结论,再分情况讨论:
1. s i − 1 , 0 < a i 1. s_{i-1,0}<a_i 1.si−1,0​<ai​,保持集合 S i − 1 S_{i-1} Si−1​的元素不动。
S i − 1 = { s i − 1 , i − 2 , s i − 1 , i − 3 , . . . , s i − 1 , 0 } S_{i-1}=\{s_{i-1,i-2},s_{i-1,i-3},...,s_{i-1,0}\} Si−1​={si−1,i−2​,si−1,i−3​,...,si−1,0​}转为 S i = { s i , i − 1 , s i , i − 2 , . . . , s i , 1 } S_i=\{s_{i,i-1},s_{i,i-2},...,s_{i,1}\} Si​={si,i−1​,si,i−2​,...,si,1​},由于 a i − 1 a_i-1 ai​−1处的斜率变为 − 1 -1 −1,但 a i a_i ai​处的斜率仍然为 0 0 0,故再加入 s i , 0 = a i s_{i,0}=a_i si,0​=ai​。
f i , s i , 0 = f i , a i = f i − 1 , a i + ∣ a i − a i ∣ = f i − 1 , a i f_{i,s_{i,0}}=f_{i,a_i}=f_{i-1,a_i}+|a_i-a_i|=f_{i-1,a_i} fi,si,0​​=fi,ai​​=fi−1,ai​​+∣ai​−ai​∣=fi−1,ai​​。

2. s i − 1 , 0 = a i 2. s_{i-1,0}=a_i 2.si−1,0​=ai​,保持集合 S i − 1 S_{i-1} Si−1​的元素不动。
s i − 1 , 0 s_{i-1,0} si−1,0​的斜率不变, S i − 1 = { s i − 1 , i − 2 , s i − 1 , i − 3 , . . . , s i − 1 , 0 } S_{i-1}=\{s_{i-1,i-2},s_{i-1,i-3},...,s_{i-1,0}\} Si−1​={si−1,i−2​,si−1,i−3​,...,si−1,0​}转为 S i = { s i , i − 1 , s i , i − 2 , . . . , s i , 2 , s i , 0 } S_i=\{s_{i,i-1},s_{i,i-2},...,s_{i,2},s_{i,0}\} Si​={si,i−1​,si,i−2​,...,si,2​,si,0​},缺少 s i , 1 s_{i,1} si,1​,加入 s i , 1 = s i , 0 = a i s_{i,1}=s_{i,0}=a_i si,1​=si,0​=ai​即可,因为已经不存在斜率为 − 1 -1 −1的整点,用 [ s i , 1 , s i , 0 ) = [ a , a ) [s_{i,1},s_{i,0})=[a,a) [si,1​,si,0​)=[a,a)表示这部分为空集。
f i , s i , 0 = f i , a i = f i − 1 , a i + ∣ a i − a i ∣ = f i − 1 , a i f_{i,s_{i,0}}=f_{i,a_i}=f_{i-1,a_i}+|a_i-a_i|=f_{i-1,a_i} fi,si,0​​=fi,ai​​=fi−1,ai​​+∣ai​−ai​∣=fi−1,ai​​。

3. s i − 1 , 0 > a i 3. s_{i-1,0}>a_i 3.si−1,0​>ai​。
此时需要弹出 s i − 1 , 0 s_{i-1,0} si−1,0​,设 s i , k < a i , s i , k − 1 ≥ a i s_{i,k}<a_i,s_{i,k-1}\ge a_i si,k​<ai​,si,k−1​≥ai​
S i − 1 = { s i − 1 , i − 2 , s i − 1 , i − 3 , . . . , s i , k , s i − 1 , k − 1 , . . . , s i − 1 , 1 } S_{i-1}=\{s_{i-1,i-2},s_{i-1,i-3},...,s_{i,k},s_{i-1,k-1},...,s_{i-1,1}\} Si−1​={si−1,i−2​,si−1,i−3​,...,si,k​,si−1,k−1​,...,si−1,1​}转为 S i = { s i , i − 1 , s i , i − 2 , . . . , s i , k + 1 , s i , k − 2 , . . . , s i , 2 , s i , 0 } S_i=\{s_{i,i-1},s_{i,i-2},...,s_{i,k+1},s_{i,k-2},...,s_{i,2},s_{i,0}\} Si​={si,i−1​,si,i−2​,...,si,k+1​,si,k−2​,...,si,2​,si,0​},加入 s i , k = s i , k − 1 = a i s_{i,k}=s_{i,k-1}=a_i si,k​=si,k−1​=ai​。
f i , s i , 0 = f i − 1 , s i − 1 , 0 + s i − 1 , 0 − a i f_{i,s_{i,0}}=f_{i-1,s_{i-1,0}}+s_{i-1,0}-a_i fi,si,0​​=fi−1,si−1,0​​+si−1,0​−ai​。

由于 s i , i − 1 ≤ s i , i − 2 ≤ . . . ≤ s i , 0 s_{i,i-1}\le s_{i,i-2}\le ...\le s_{i,0} si,i−1​≤si,i−2​≤...≤si,0​,整个过程只需要维护一个优先队列,从而时间复杂度可以优化到 O ( n l o g n ) O(nlogn) O(nlogn)。

#include <bits/stdc++.h>
typedef unsigned long long ull;
typedef long long ll;
#define rep(i, l, r) for (int i = l; i <= r; i++)
#define nep(i, r, l) for (int i = r; i >= l; i--)
void sc(int &x) { scanf("%d", &x); }
void sc(int &x, int &y) { scanf("%d%d", &x, &y); }
void sc(int &x, int &y, int &z) { scanf("%d%d%d", &x, &y, &z); }
void sc(ll &x) { scanf("%lld", &x); }
void sc(ll &x, ll &y) { scanf("%lld%lld", &x, &y); }
void sc(ll &x, ll &y, ll &z) { scanf("%lld%lld%lld", &x, &y, &z); }
void sc(char *x) { scanf("%s", x); }
void sc(char *x, char *y) { scanf("%s%s", x, y); }
void sc(char *x, char *y, char *z) { scanf("%s%s%s", x, y, z); }
void out(int x) { printf("%d\n", x); }
void out(ll x) { printf("%lld\n", x); }
void out(int x, int y) { printf("%d %d\n", x, y); }
void out(ll x, ll y) { printf("%lld %lld\n", x, y); }
void out(int x, int y, int z) { printf("%d %d %d\n", x, y, z); }
void out(ll x, ll y, ll z) { printf("%lld %lld %lld\n", x, y, z); }
void ast(ll x,ll l,ll r){assert(x>=l&&x<=r);}
using namespace std;
const int N=5e3+5,mod=998244353;
const ll inf=1e18;
int n;
priority_queue<int>q;
void sol(int cas)
{sc(n);ll ans=0;rep(i,1,n){int x;sc(x);x-=i;q.push(x);if(q.top()>x){ans+=q.top()-x;q.pop();q.push(x);}}out(ans);
}
int main()
{// freopen("1.in", "r",stdin);// freopen("1.out", "w", stdout);srand(time(0));int t=1,cas=0;
//   scanf("%d",&t);while(t--){sol(++cas);}return 0;
}

abc217H - Snuketoon

最初你在点 0 0 0,每一秒你可以从点 x x x走到 x + 1 , x , x − 1 x+1,x,x-1 x+1,x,x−1。
有 N N N次攻击。
第 i i i次攻击发生在时刻 T i T_i Ti​,设此时在点 x x x,如果 D i = 0 D_i=0 Di​=0,则你会受到 m a x ( 0 , X i − x ) max(0,X_i-x) max(0,Xi​−x)点伤害, D i = 1 D_i=1 Di​=1则你会受到 m a x ( 0 , x − X i ) max(0,x-X_i) max(0,x−Xi​)点伤害。
问 N N N次攻击后你受到的总伤害最小是多少。
1 ≤ N ≤ 200000 1 ≤ T 1 ≤ T 2 ≤ . . . ≤ T N ≤ 1 0 9 0 ≤ D i ≤ 1 − 1 0 9 ≤ X i ≤ 1 0 9 1\le N\le 200000\\1\le T_1\le T_2\le ...\le T_N\le 10^9\\0\le D_i\le 1\\-10^9\le X_i\le 10^9 1≤N≤2000001≤T1​≤T2​≤...≤TN​≤1090≤Di​≤1−109≤Xi​≤109

设 f i , x f_{i,x} fi,x​表示在 T i T_i Ti​时刻你在点 x x x受到的最小伤害。
有 f i , x = c o s t ( D i , X i , x ) + min ⁡ x − ( T i − T i − 1 ) ≤ y ≤ x + ( T i − T i − 1 ) f i − 1 , y f_{i,x}=cost(D_i,X_i,x)+\min\limits_{x-(T_i-T_{i-1})\le y\le x+(T_i-T_{i-1})}f_{i-1,y} fi,x​=cost(Di​,Xi​,x)+x−(Ti​−Ti−1​)≤y≤x+(Ti​−Ti−1​)min​fi−1,y​

与上个问题不同的是, f i , x f_{i,x} fi,x​是一个下凸函数,形如下图:

因此这里需要维护两个优先队列。
一个为 L i = l i , i − 1 , l i , i − 2 , . . . , l i , 0 L_i={l_{i,i-1},l_{i,i-2},...,l_{i,0}} Li​=li,i−1​,li,i−2​,...,li,0​,另一个为 R i = r i , 0 , r i , 1 , . . . , r i , i − 1 R_i=r_{i,0},r_{i,1},...,r_{i,i-1} Ri​=ri,0​,ri,1​,...,ri,i−1​。
表示 x ∈ [ l i , j , l i , j − 1 ) x\in [l_{i,j},l_{i,j-1}) x∈[li,j​,li,j−1​)时 x x x处的斜率为 − j -j −j。
x ∈ [ l i , 0 , r i , 0 ) x\in[l_{i,0},r_{i,0}) x∈[li,0​,ri,0​)时 x x x处斜率为 0 0 0。
x ∈ [ r i , j , r i , j + 1 ) x\in[r_{i,j},r_{i,j+1}) x∈[ri,j​,ri,j+1​)时 x x x处斜率为 j j j。
对于 x − ( T i − T i − 1 ) ≤ y ≤ x + ( T i − T i − 1 ) x-(T_i-T_{i-1})\le y\le x+(T_i-T_{i-1}) x−(Ti​−Ti−1​)≤y≤x+(Ti​−Ti−1​)这个限制。
如图,我们对红色的图像左平移 T i − T i − 1 {T_i-T_{i-1}} Ti​−Ti−1​得到黄色图像,对红色的图像右平移 T i − T i − 1 {T_i-T_{i-1}} Ti​−Ti−1​得到粉色图像。最后我们要取的图像是棕色图像。
即 g i , x = min ⁡ x − ( T i − T i − 1 ) ≤ y ≤ x + ( T i − T i − 1 ) f i − 1 , y g_{i,x}=\min\limits_{x-(T_i-T_{i-1})\le y\le x+(T_i-T_{i-1})}f_{i-1,y} gi,x​=x−(Ti​−Ti−1​)≤y≤x+(Ti​−Ti−1​)min​fi−1,y​只需要将 L i − 1 L_{i-1} Li−1​中的点坐标都减去 T i − T i − 1 T_i-T_{i-1} Ti​−Ti−1​,将 R i − 1 R_{i-1} Ri−1​中的点都加上 T i − T i − 1 T_i-T_{i-1} Ti​−Ti−1​就可以得到。
得到 g i , x g_{i,x} gi,x​后,再将其加上分段函数 C o s t ( D i , X i ) Cost(D_i,X_i) Cost(Di​,Xi​),对 L i L_i Li​和 R i R_i Ri​进行形如上一题中的讨论即可,另外这里只需要维护 a n s = f i , l i , 0 = f i , l i , 0 + 1 = . . . = f i , r i , 0 ans=f_{i,l_{i,0}}=f_{i,l_{i,0}+1}=...=f_{i,r_{i,0}} ans=fi,li,0​​=fi,li,0​+1​=...=fi,ri,0​​的值即可。
注意这里斜率为 0 0 0的点的斜率也要加 1 1 1或减 1 1 1。
另外一个地方是初始时 < 0 <0 <0处的斜率为 − ∞ -\infty −∞, > 0 >0 >0处的斜率为 ∞ \infty ∞。
所以初始时还要额外插入较多的 0 0 0。

#include <bits/stdc++.h>
typedef unsigned long long ull;
typedef long long ll;
#define rep(i, l, r) for (int i = l; i <= r; i++)
#define nep(i, r, l) for (int i = r; i >= l; i--)
void sc(int &x) { scanf("%d", &x); }
void sc(int &x, int &y) { scanf("%d%d", &x, &y); }
void sc(int &x, int &y, int &z) { scanf("%d%d%d", &x, &y, &z); }
void sc(ll &x) { scanf("%lld", &x); }
void sc(ll &x, ll &y) { scanf("%lld%lld", &x, &y); }
void sc(ll &x, ll &y, ll &z) { scanf("%lld%lld%lld", &x, &y, &z); }
void sc(char *x) { scanf("%s", x); }
void sc(char *x, char *y) { scanf("%s%s", x, y); }
void sc(char *x, char *y, char *z) { scanf("%s%s%s", x, y, z); }
void out(int x) { printf("%d\n", x); }
void out(ll x) { printf("%lld\n", x); }
void out(int x, int y) { printf("%d %d\n", x, y); }
void out(ll x, ll y) { printf("%lld %lld\n", x, y); }
void out(int x, int y, int z) { printf("%d %d %d\n", x, y, z); }
void out(ll x, ll y, ll z) { printf("%lld %lld %lld\n", x, y, z); }
void ast(ll x,ll l,ll r){assert(x>=l&&x<=r);}
using namespace std;
const int N=2e5+5,mod=998244353;
const ll inf=1e18;
int n;
ll ans,sl,sr;
priority_queue<ll>L;
priority_queue<ll,vector<ll>,greater<ll>>R;
void sol(int cas)
{sc(n);int pre=0;L.push(0);R.push(0);for(int i=0;i<=n;i++) L.push(0),R.push(0);rep(i,1,n){int t,d,x;sc(t,d,x);sl-=t-pre;sr+=t-pre;pre=t;if(d==0)//Xi-x{if(x<=R.top()+sr)L.push(x-sl);else{ans+=x-(R.top()+sr);ll y=R.top()+sr;R.pop();R.push(x-sr);L.push(y-sl);}}else//x-Xi{if(x>=L.top()+sl)R.push(x-sr);else{ans+=(L.top()+sl)-x;ll y=L.top()+sl;L.pop();L.push(x-sl);R.push(y-sr);}}}out(ans);
}
int main()
{// freopen("1.in", "r",stdin);// freopen("1.out", "w", stdout);srand(time(0));int t=1,cas=0;
//   scanf("%d",&t);while(t--){sol(++cas);}return 0;
}
/*
befor submit code check:
freopen
size of N
mod
debug output
*/

Slope Trick相关推荐

  1. Slope one—个性化推荐中最简洁的协同过滤算法

    Slope One 是一系列应用于 协同过滤的算法的统称.由 Daniel Lemire和Anna Maclachlan于2005年发表的论文中提出. [1]有争议的是,该算法堪称基于项目评价的non ...

  2. 【CV知识学习】early stop、regularation、fine-tuning and some other trick to be known

    深度学习有不少的trick,而且这些trick有时还挺管用的,所以,了解一些trick还是必要的.上篇说的normalization.initialization就是trick的一种,下面再总结一下自 ...

  3. ATSS : 目标检测的自适应正负anchor选择,很扎实的trick | CVPR 2020

    作者 | VincentLee 来源 | 晓飞的算法工程笔记 论文地址: https://arxiv.org/abs/1912.02424 代码地址: https://github.com/sfzha ...

  4. 改善深度学习训练的trick总结 | CSDN博文精选

    扫码参与CSDN"原力计划" 作者 | ZesenChen 来源 | CSDN博客精选 在深度学习中,同样一个模型用不同的初始化,数据处理,batch size,学习率,优化器都能 ...

  5. 让Transformer的推理速度提高4.5倍,这个小trick还能给你省十几万

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最近,N ...

  6. 深度学习 CNN trick 合集

    来自 | 知乎   作者| sticky 链接 | https://zhuanlan.zhihu.com/p/137940586 编辑 | 深度学习这件小事公众号 本文仅作学术交流,如有侵权,请联系后 ...

  7. 深度学习有哪些trick?

    作者丨DOTA.永无止境.冯迁 来源丨知乎问答 编辑丨极市平台 导读 Deep learning在训练的时候往往有很多trick,不可否认这些trick也是DL成功的关键因素之一,所谓"th ...

  8. R语言ggplot2可视化:可视化斜率图、对比同一数据对象随着时间推移多个状态的差异(Slope Chart)、例如、对比不同癌症5年期、10年期、15年期存活率的差异

    R语言ggplot2可视化:可视化斜率图.对比同一数据对象随着时间推移多个状态的差异(Slope Chart).例如.对比不同癌症5年期.10年期.15年期存活率的差异 目录

  9. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)

    Python使用matplotlib可视化斜率图.对比同一数据对象前后(before.after)两个状态的差异(Slope Chart) 目录

最新文章

  1. Windows Server 2012 R2工作文件夹⑨:自动发现设置
  2. Shell教程(五):替代、引用机制、输入输出重定向
  3. python startswitch_python学习第四天
  4. linux指令:echo, head, tail
  5. java studentmanager_StudentManager.java
  6. Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5
  7. Cooliris – 优雅的照片浏览工具[iOS/Android]
  8. Android13_fragment_view动画_属性动画
  9. 那些人,那些事儿之小武
  10. 卷积神经网络:一个模块化视角
  11. 任正非——《一江春水向东流》
  12. 短视频SDK简单易用——来自RDSDK.COM
  13. Indel (Insertion and Deletion)分析简介
  14. 非常好理解的python re正则表达式入手
  15. Delphi - 对象构造和vmt系列
  16. 跨境电商运营 | 如何利用Instagram进行电子商务营销
  17. 有关“夜壶冲”的由来
  18. Hyper-V 2016 系列教程50 某德国制造型企业上线案例分享
  19. 【Spring】Spring MVC原理及配置详解
  20. mysql 5.6.24 64位_CentOS 6.4 64位 安装 mysql 5.6.24

热门文章

  1. 章鱼网络,构建未来Web3弹性之网
  2. UC-Android逆向工程师 面试题1的分析
  3. 诠释韧性增长,知乎Q3财报里的社区优势和商业化价值
  4. 【模拟CMOS集成电路】电路失调与CMRR—— 随机失调与系统失调分析(1)
  5. 安卓网apk安装器_安卓APP推荐:假日时间规划师,定时音乐播放器,最小的APK提取器...
  6. 碳化硅(SiC)晶体主要应用领域和主要性能参数介绍
  7. RDBMS之SQL:SQL语言的各种方言的简介(MySQL/Hive SQL/PQL/OracleSQL/SQLite影响力排序)、主流语言的对比之详细攻略
  8. 计算机网络-ICMP
  9. IT30: 软件团队的工作职责与岗位要求
  10. OpenCV(三)——图像分割