1 数列分块入门_[Loj] 数列分块入门 1 - 9-程序员宅基地

技术标签: 1 数列分块入门  

数列分块入门 1

区间加 + 单点查询

#include #include#include

using namespacestd;const int N = 5e4 + 10;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}intA[N], Add[N], bel[N];intn, block, cnt;void Sec_G(int x, int y, intw) {if(bel[x] == bel[y]) for(int i = x; i <= y; i ++) A[i] +=w;else{for(int i = x; i <= bel[x] * block; i ++) A[i] +=w;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] +=w;

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] +=w;

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1;if(n % block) cnt = n / block + 1;else cnt = n /block;int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(!opt) Sec_G(l, r, c);else cout << A[r] + Add[bel[r]] <

}return 0;

}

数列分块入门 2

区间加法,询问区间内小于某个值 x的元素个数

用B[]记录A[], B[]数组中为排好序的A[]的映射

那么每次可以对每一块进行二分查找

#include #include#include#include

using namespacestd;const int N = 5e4 + 10;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}intA[N], B[N], Add[N], bel[N];intn, block, cnt;void Work_sort(intx) {int l = (x - 1) * block + 1, r = min(l + block - 1, n);for(int i = l; i <= r; i ++) B[i] =A[i];

sort(B+ l, B + r + 1);

}void Sec_G(int x, int y, intw) {if(bel[x] ==bel[y]) {for(int i = x; i <= y; i ++) A[i] +=w;

Work_sort(bel[x]);

}else{for(int i = x; i <= bel[x] * block; i ++) A[i] +=w; Work_sort(bel[x]);for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] +=w; Work_sort(bel[y]);

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] +=w;

}

inlineint Calc(int x, intw) {int l = (x - 1) * block + 1, r = min(l + block - 1, n), ret = 0;while(l <=r) {int mid = (l + r) >> 1;if(B[mid] + Add[x] < w) ret = mid, l = mid + 1;else r = mid - 1;

}return ret ? (ret - (x - 1) * block) : 0;

}

inlineint Sec_A(int x, int y, intw) {int ret(0);if(bel[x] ==bel[y]) {for(int i = x; i <= y; i ++) if(A[i] + Add[bel[x]] < w) ret ++;returnret;

}else{for(int i = x; i <= bel[x] * block; i ++) if(A[i] + Add[bel[x]] < w) ret ++;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++)if(A[i] + Add[bel[y]]

ret++;

}for(int i = bel[x] + 1; i < bel[y]; i ++)

ret+=Calc(i, w);returnret;

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1;if(n % block) cnt = n / block + 1;else cnt = n /block;for(int i = 1; i <= cnt; i ++) Work_sort(i);int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(!opt) Sec_G(l, r, c);else cout << Sec_A(l, r, c * c) << "\n";

}return 0;

}

数列分块入门 3

区间加法,询问区间内小于某个值 x的前驱

与2类似,二分查找

#include #include#include#include

using namespacestd;const int N = 1e5 + 10;const int oo = 999999999;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}int A[N], B[N] = {-1}, Add[N], bel[N];intn, block, cnt;void Work_sort(intx) {int l = (x - 1) * block + 1, r = min(l + block - 1, n);for(int i = l; i <= r; i ++) B[i] =A[i];

sort(B+ l, B + r + 1);

}void Sec_G(int x, int y, intw) {if(bel[x] ==bel[y]) {for(int i = x; i <= y; i ++) A[i] +=w;

Work_sort(bel[x]);

}else{for(int i = x; i <= bel[x] * block; i ++) A[i] +=w; Work_sort(bel[x]);for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] +=w; Work_sort(bel[y]);

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] +=w;

}

inlineint Calc(int x, intw) {int l = (x - 1) * block + 1, r = min(l + block - 1, n), ret = 0;while(l <=r) {int mid = (l + r) >> 1;if(B[mid] + Add[x] < w) ret = mid, l = mid + 1;else r = mid - 1;

}return B[ret] +Add[x];

}

inlineint Sec_A(int x, int y, intw) {int ret = -1;if(bel[x] ==bel[y]) {for(int i = x; i <= y; i ++) if(A[i] + Add[bel[x]] < w && A[i] + Add[bel[x]] > ret) ret = A[i] +Add[bel[x]];returnret;

}else{for(int i = x; i <= bel[x] * block; i ++)if(A[i] + Add[bel[x]] < w && A[i] + Add[bel[x]] > ret) ret = A[i] +Add[bel[x]];for(int i = (bel[y] - 1) * block + 1; i <= y; i ++)if(A[i] + Add[bel[y]] < w && A[i] + Add[bel[y]] > ret) ret = A[i] +Add[bel[y]];

}for(int i = bel[x] + 1; i < bel[y]; i ++) {int imp =Calc(i, w);if(imp < w && imp > ret) ret =imp;

}returnret;

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1;if(n % block) cnt = n / block + 1;else cnt = n /block;for(int i = 1; i <= cnt; i ++) Work_sort(i);int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(!opt) Sec_G(l, r, c);else cout << Sec_A(l, r, c) << "\n";

}return 0;

}

数列分块入门 4

区间加法,区间求和

没什么好说的

#include #include#include

using namespacestd;const int N = 5e4 + 10;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}#define LL long longLL A[N], Add[N], bel[N], W[N];intn, block, cnt, Mod;void Sec_G(int x, int y, intw) {if(bel[x] == bel[y]) for(int i = x; i <= y; i ++) A[i] += w, W[bel[x]] +=w;else{for(int i = x; i <= bel[x] * block; i ++) A[i] += w, W[bel[x]] +=w;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] += w, W[bel[y]] +=w;

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] += w, W[i] += w *block;

}

inlineint Sec_A(int x, inty) {

LL ret= 0;if(bel[x] ==bel[y])for(int i = x; i <= y; i ++)

ret+= (A[i] + Add[bel[x]]) %Mod;else{for(int i = x; i <= bel[x] * block; i ++) ret += (A[i] + Add[bel[x]]) %Mod;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) ret += (A[i] + Add[bel[y]]) %Mod;

}for(int i = bel[x] + 1; i < bel[y]; i ++) ret += W[i] %Mod;return ret%Mod;

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1, W[bel[i]] +=A[i];if(n % block) cnt = n / block + 1;else cnt = n /block;int T =n;while(T --) {int opt = read(), l = read(), r = read(), c = read(); Mod = c + 1;if(!opt) Sec_G(l, r, c);else cout << Sec_A(l, r) <

}return 0;

}

数列分块入门 5

区间开方,区间求和

一个数(合理)开几次根后就是0/1了

因此,只需记录每块的最大值,如果最大值是0/1就没必要开根

#include #include#include

using namespacestd;const int N = 5e4 + 10;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}#define LL long longLL A[N], Add[N], bel[N], W[N], Max[N];intn, block, cnt, Mod;

inlinevoid Sec_G(int x, inty) {if(bel[x] ==bel[y]) {if(!Max[bel[x]]) return;if(Max[bel[x]] == 1) return;for(int i = x; i <= y; i ++) {int C = A[i] - (int) sqrt(A[i]);

W[bel[x]]-= C; A[i] = (int) sqrt(A[i]);

}

LL Max_A= 0;for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) Max_A =max(Max_A, A[i]);

Max[bel[x]]=Max_A;return;

}else{if(Max[bel[x]] && Max[bel[x]] != 1) {for(int i = x; i <= bel[x] * block; i ++) {int C = A[i] - (int) sqrt(A[i]);

W[bel[x]]-=C;

A[i]= (int) sqrt(A[i]);

}

LL Max_A= 0;for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) Max_A =max(Max_A, A[i]);

Max[bel[x]]=Max_A;

}if(Max[bel[y]] && Max[bel[y]] != 1) {for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) {int C = A[i] - (int) sqrt(A[i]);

W[bel[y]]-=C;

A[i]= (int) sqrt(A[i]);

}

LL Max_A= 0;for(int i = (bel[y] - 1) * block + 1; i <= bel[y] * block; i ++) Max_A =max(Max_A, A[i]);

Max[bel[y]]=Max_A;

}

}for(int i = bel[x] + 1; i < bel[y]; i ++) {if(!Max[i] || Max[i] == 1) continue;

LL Max_A= 0;for(int j = (i - 1) * block + 1; j <= i * block; j ++) {int C = A[j] - (int) sqrt(A[j]);

W[i]-=C;

A[j]= (int) sqrt(A[j]);

Max_A=max(Max_A, A[j]);

}

Max[i]=Max_A;

}

}

inlineint Sec_A(int x, inty) {

LL ret= 0;if(bel[x] == bel[y] && Max[bel[x]]) for(int i = x; i <= y; i ++) ret +=A[i];else{for(int i = x; i <= bel[x] * block && Max[bel[x]]; i ++) ret +=A[i];for(int i = (bel[y] - 1) * block + 1; i <= y && Max[bel[y]]; i ++) ret +=A[i];

}for(int i = bel[x] + 1; i < bel[y]; i ++) ret +=W[i];returnret;

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1, W[bel[i]] += A[i], Max[bel[i]] =max(Max[bel[i]], A[i]);int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(!opt) Sec_G(l, r);else cout << Sec_A(l, r) << "\n";

}return 0;

}

数列分块入门 6

单点插入,单点询问

数据随机,分块,对于每一块开动态数组,插入 + 查询比较容易实现

如果数据不随机,就有可能加到同一块中的数较多,影响效率

这样可以进行一定的插入操作之后重新分块

#include #include#include#include

using namespacestd;const int N = 1e5 + 10;int A[N << 1], n;

vector Vec[350];intblock, bel[N];#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}

inlinevoid Ins(int x, inta) {int now_size(0), Whi;for(int i = 1; ; i ++) {int Size =Vec[i].size();

now_size+=Size;if(now_size >=x) {

Whi=i;

x-= (now_size -Size);break;

}

}

Vec[Whi].insert(Vec[Whi].begin()+ x - 1, a);

}

inlineint Poi_A(intx) {int Whi_, now_size(0);for(int i = 1; ; i ++) {int Size =Vec[i].size();

now_size+=Size;if(now_size >=x) {int iii = x - (now_size -Size);return Vec[i][iii - 1];

}

}

}intmain() {

n=read();

block=sqrt(n);for(int i = 1; i <= n; i ++) A[i] =read();for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1;for(int i = 1; i <= n; i ++) Vec[bel[i]].push_back(A[i]);int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(!opt) Ins(l, r);else cout << Poi_A(r) <

}return 0;

}

数列分块入门 7

区间乘法,区间加法,单点询问

先乘后加,乘的时候相应的加法标记也要乘

#include #include#include#include

using namespacestd;const int N = 1e5 + 10;const int Mod = 1e4 + 7;#define LL long longLL A[N], Mul[N], Add[N], bel[N];intn, cnt, block;#define gc getchar()inlineintread() {int x = 0, f = 1; char c =gc;while(c < '0' || c > '9') {if(c == '-') f = -1; c =gc;}while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}

inlinevoid Sec_Add(int x, int y, intw) {if(bel[x] ==bel[y]) {for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) A[i] = (A[i] * Mul[bel[x]] +Add[bel[x]]);

Add[bel[x]]= 0; Mul[bel[x]] = 1;for(int i = x; i <= y; i ++) A[i] += w, A[i] %=Mod;return;

}else{for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) A[i] = (A[i] * Mul[bel[i]] + Add[bel[i]]) %Mod;

Add[bel[x]]= 0; Mul[bel[x]] = 1;for(int i = x; i <= bel[x] * block; i ++) A[i] += w, A[i] %=Mod;for(int i = (bel[y] - 1) * block + 1; i <= bel[y] * block; i ++) A[i] = (A[i] * Mul[bel[i]] + Add[bel[i]]) %Mod;

Add[bel[y]]= 0; Mul[bel[y]] = 1;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] += w, A[i] %=Mod;

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] += w, Add[i] %=Mod;

}

inlinevoid Sec_Mul(int x, int y, intw) {if(bel[x] ==bel[y]) {for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) A[i] = (A[i] * Mul[bel[i]] + Add[bel[i]]) %Mod;

Add[bel[x]]= 0; Mul[bel[x]] = 1;for(int i = x; i <= y; i ++) A[i] = (A[i] * w) %Mod;return;

}else{for(int i = (bel[x] - 1) * block + 1; i <= bel[x] * block; i ++) A[i] = (A[i] * Mul[bel[i]] + Add[bel[i]]) %Mod;

Add[bel[x]]= 0; Mul[bel[x]] = 1;for(int i = x; i <= bel[x] * block; i ++) A[i] = (A[i] * w) %Mod;for(int i = (bel[y] - 1) * block + 1; i <= bel[y] * block; i ++) A[i] = (A[i] * Mul[bel[i]] + Add[bel[i]]) %Mod;

Add[bel[y]]= 0; Mul[bel[y]] = 1;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] = (A[i] * w) %Mod;

}for(int i = bel[x] + 1; i < bel[y]; i ++) Add[i] = (Add[i] * w) % Mod, Mul[i] = (Mul[i] * w) %Mod;

}intmain() {

n=read();for(int i = 1; i <= n; i ++) A[i] =read();

block=sqrt(n);for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1, Mul[i] = 1;int T =n;while(T --) {int opt = read(), l = read(), r = read(), c =read();if(opt == 0) Sec_Add(l, r, c);else if(opt == 1) Sec_Mul(l, r, c);else cout << (A[r] * Mul[bel[r]] + Add[bel[r]]) % Mod << "\n";

}return 0;

}

数列分块入门 8

暴力

区间修改没有什么难度,这题难在区间查询比较奇怪,因为权值种类比较多,似乎没有什么好的维护方法。

模拟一些数据可以发现,询问后一整段都会被修改,几次询问后数列可能只剩下几段不同的区间了。

我们思考这样一个暴力,还是分块,维护每个分块是否只有一种权值,区间操作的时候,对于同权值的一个块就O(1)统计答案,否则暴力统计答案,并修改标记,不完整的块也暴力。

这样看似最差情况每次都会耗费O(n)的时间,但其实可以这样分析:

假设初始序列都是同一个值,那么查询是O(√n),如果这时进行一个区间操作,它最多破坏首尾2个块的标记,所以只能使后面的询问至多多2个块的暴力时间,所以均摊每次操作复杂度还是O(√n)。

换句话说,要想让一个操作耗费O(n)的时间,要先花费√n个操作对数列进行修改。

初始序列不同值,经过类似分析后,就可以放心的暴力啦。

#include #include#include#include#include

using namespacestd;const int N = 1e5 + 10;intbel[N], A[N], bec[N];intn;intblock;#define gc getchar()inlineintread() {int x = 0; char c =gc;while(c < '0' || c > '9') c =gc;while(c >= '0' && c <= '9') x = x * 10 + c - '0', c =gc;returnx;

}int Sec_A(int x, int y, intc) {int ret(0);if(bel[x] ==bel[y]) {if(bec[bel[x]] == c) ret = y - x + 1;else if(bec[bel[x]] == -1) for(int i = x; i <= y; i ++) if(A[i] == c) ret ++;if(~ bec[bel[x]]) for(int i = (bel[x] - 1) * block + 1; i < x; i ++) A[i] =bec[bel[x]];if(~ bec[bel[x]]) for(int i = y + 1; i <= bel[x] * block; i ++) A[i] =bec[bel[x]];for(int i = x; i <= y; i ++) A[i] =c;

bec[bel[x]]= -1;

}else{if(bec[bel[x]] == c) ret += bel[x] * block - x + 1;else if(bec[bel[x]] == -1) for(int i = x; i <= bel[x] * block; i ++) if(A[i] == c) ret ++;if(bec[bel[y]] == c) ret += y - ((bel[y] - 1) *block);else if(bec[bel[y]] == -1) for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) if(A[i] == c) ret ++;for(int i = bel[x] + 1; i < bel[y]; i ++) {if(bec[i] == c) ret +=block;else if(bec[i] == -1)for(int j = (i - 1) * block + 1; j <= i * block; j ++)if(A[j] == c) ret ++;

}if(~ bec[bel[x]]) for(int i = (bel[x] - 1) * block + 1; i < x; i ++) A[i] =bec[bel[i]];for(int i = x; i <= bel[x] * block; i ++) A[i] =c;

bec[bel[x]]= -1;for(int i = (bel[y] - 1) * block + 1; i <= y; i ++) A[i] =c;if(~ bec[bel[y]]) for(int i = y + 1; i <= bel[y] * block; i ++) A[i] =bec[bel[i]];

bec[bel[y]]= -1;for(int i = bel[x] + 1; i < bel[y]; i ++) bec[i] =c;

}returnret;

}intmain() {

n=read();for(int i = 1; i <= n; i ++) bec[i] = -1;for(int i = 1; i <= n; i ++) A[i] =read();

block=sqrt(n);for(int i = 1; i <= n; i ++) bel[i] = (i - 1) / block + 1;int T =n;while(T --) {int l = read(), r = read(), c =read();

cout<< Sec_A(l, r, c) << "\n";

}return 0;

}

数列分块入门 9

区间众数查询

陈立杰区间众数解题报告

#include#include#include#include#include#include#include#include#include#include#include

#define mod 10007

#define pi acos(-1)

#define inf 0x7fffffff

#define ll long long

using namespacestd;

ll read() {

ll x=0,f=1;char ch=getchar();while(ch'9') {if(ch=='-')f=-1;

ch=getchar();

}while(ch>='0'&&ch<='9') {

x=x*10+ch-'0';

ch=getchar();

}return x*f;

}intn,blo,id;int v[50005],bl[50005];int f[505][505];

mapmp;int val[50005],cnt[50005];

vectorve[50005];void pre(intx) {

memset(cnt,0,sizeof(cnt));int mx=0,ans=0;for(int i=(x-1)*blo+1; i<=n; i++) {

cnt[v[i]]++;int t=bl[i];if(cnt[v[i]]>mx||(cnt[v[i]]==mx&&val[v[i]]

ans=v[i],mx=cnt[v[i]];

f[x][t]=ans;

}

}int query(int l,int r,intx) {int t=upper_bound(ve[x].begin(),ve[x].end(),r)-lower_bound(ve[x].begin(),ve[x].end(),l);returnt;

}int query(int a,intb) {intans,mx;

ans=f[bl[a]+1][bl[b]-1];

mx=query(a,b,ans);for(int i=a; i<=min(bl[a]*blo,b); i++) {int t=query(a,b,v[i]);if(t>mx||(t==mx&&val[v[i]]

}if(bl[a]!=bl[b])for(int i=(bl[b]-1)*blo+1; i<=b; i++) {int t=query(a,b,v[i]);if(t>mx||(t==mx&&val[v[i]]

}returnans;

}intmain() {

n=read();

blo=200;for(int i=1; i<=n; i++) {

v[i]=read();if(!mp[v[i]]) {

mp[v[i]]=++id;

val[id]=v[i];

}

v[i]=mp[v[i]];

ve[v[i]].push_back(i);

}for(int i=1; i<=n; i++)bl[i]=(i-1)/blo+1;for(int i=1; i<=bl[n]; i++)pre(i);for(int i=1; i<=n; i++) {int a=read(),b=read();if(a>b)swap(a,b);

printf("%d\n",val[query(a,b)]);

}return 0;

}

分块算法小结:

暴力算法

时间复杂度可以

空间允许

优美

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39683368/article/details/111731239

智能推荐

ajax php 爬虫教程,使用PHP+AJAX让WordPress动态加载文章的教程-程序员宅基地

文章浏览阅读119次。为什么要动态加载文章?1. 快速向访客展示页面文章很容是包含大量文字和多媒体资源 (如: 图片, 视频, 音乐), 加载这些内容需要占用很多的时间. 如果你的页面上存在大量文章, 当访客发现页面久久没有加载完成就感到不耐烦. 这是动态加载文章的主要目的.2. 让文章列表化使页面上的文章成为一个列表, 减少页面的空间占用, 访客可以方便的移动到页面下方, 提高旧文章被点击的几率. 并且你可以在页面上..._蜘蛛爬取/wp-admin/admin-ajax.php文件

414. 两个整数相除_p1098两个整数相除-程序员宅基地

文章浏览阅读376次。414.两个整数相除将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出(超出32位有符号整型表示范围),返回2147483647。整数除法应截断为零。样例样例 1:输入: 被除数 = 0, 除数 = 1输出: 0样例 2:输入: 被除数 = 100, 除数 = 9输出: 11public class Solution {/*** @param dividend: t..._p1098两个整数相除

rancher2.x连接私有仓库harbor_rancher harbor-程序员宅基地

文章浏览阅读8.4k次。我搭建了一个Rancher2.4.4版本环境,因为之前已经有一个独立搭建的Harbor,现在需要在Rancher中部署Harbor中的镜像,问题是当我按如下图部署服务后,rancher不能正常拉取我原有的harbor中的镜像:按如图配置拉取我harbor中的镜像出现了错误错误提示如下:ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: unauthorized: unauthorized to acc_rancher harbor

我,27岁,程序员,9月无情被辞:想给做开发的提个醒…-程序员宅基地

文章浏览阅读274次。“程序员能纯靠技术渡过中年危机吗?”▲截图来源于知乎知乎上的这个提问,吸引了大批码农留言,热赞均表示“能,很难”。因为难逃这两种结局:•没精力学习,技术一迭代,被淘汰。•有技术,9..._计算机硕士学历 硬核技术 双翼提升训练营骗局

阿里云服务器(CentOS 7.4)Jenkins(LTS 2.150.3)部署及简易配置_jnkins2.150.3用哪个版本的插件-程序员宅基地

文章浏览阅读853次。阿里云(CenOS 7.4)中Jenkins(LTS 2.150.3)部署与简易配置Jenkins 目前是使用比较多的一个持续集成的开源工具,不管是开发测试部署,还是代码扫描等。很多工作都可以放到Jenkins来进行,最终实现一个完整的流程。开发人员提交代码后,Jenkins上的job就会开始“自动编译打包–&amp;amp;amp;amp;amp;amp;amp;gt;自动部署–&amp;amp;amp;amp;amp;amp;amp;gt;单元测试/代码扫描–&amp;amp;_jnkins2.150.3用哪个版本的插件

如何用阿里云的API进行身份证识别_阿里云身份证验证state字段怎么获取-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏4次。准备工作:在libs下添加 alicloud-android-apigateway-sdk-1.0.1.jar,commons-codec-1.10-1.jar 在build.gradle添加 compile'com.squareup.okhttp3:okhttp:3.4.1'在onCreate,或者afterViews初始化API网关 priva_阿里云身份证验证state字段怎么获取

随便推点

第1章 打印启动信息_.code16 .global start start: # code ... movw $0, %-程序员宅基地

文章浏览阅读706次。显示器I/O知识:显存地址是 0xb8000,屏幕是80*25,每个位置由两个字节决定。第一个字节决定所显示的字符,如0xb8000。第二个字节决定怎么显示字符(背景颜色,前景颜色),如0xb8001。汇编命令知识:cld: 方向标志置0,si和di 增1_.code16 .global start start: # code ... movw $0, %ax movw $0, %bx movw $0, %

EasyTouch 单指或多指手势动作识别_easytouch 多指操作-程序员宅基地

文章浏览阅读538次。http://blog.sina.com.cn/s/blog_5fb40ceb0102wchd.html_easytouch 多指操作

【SQL】杀进程-数据库正在被某些进程使用_sql 语句 use master go select b.spid from sysdatabas-程序员宅基地

文章浏览阅读346次。此问题是因为数据库正在被某些进程使用或者调用,可以在新建查询里面使用下面sql命令查看对应的spid,以下aa是我们操作的数据库名称use mastergoselect b.spid from sysdatabases a ,sysprocesses b where a.dbid=b.dbid and a.name=’aa’..._sql 语句 use master go select b.spid from sysdatabases a ,sysprocesses b whe

“Win10安装ArcGIS10.2 for Desktop需要Microsoft.net framework 3.5 sp1或等效环境” 的解决方案_win10 arcgis10.2 提示需要安装framework 3.5-程序员宅基地

文章浏览阅读1.3w次,点赞9次,收藏13次。Google得到如下solution:“I had the same issue on Windows10. found some articles that said to place a copy of Windows10 on my local drive and then use commond line to restall .NET3.5.Here is the command I..._win10 arcgis10.2 提示需要安装framework 3.5

top命令-程序员宅基地

文章浏览阅读74次。top命令 原文地址:http://www.cnblogs.com/wangkangluo1/archive/2012/04/18/2454993.html相关文章:http://www.2cto.com/os/201209/157960.htmltop命...

玩转dream DSP芯片(1)_法国dream芯片公司官网-程序员宅基地

文章浏览阅读2.2k次。一Dream全系列的芯片介绍Dream S.A.S France公司网站:https://www.dream.frDream全系列的芯片包含SAM2000 series ICs、SAM3000 series ICs以及SAM5000 series ICs。SAM5000 series ICs包括 sam5504、sam5704、sam5708、sam5808、sam5716、sam5916。目前dream的DSP广泛用于KTV前级效果器、吉他效果器、吉他音箱、调音台、点歌机机顶盒、电视K.._法国dream芯片公司官网