这个死宅题面就不吐槽了。。。

2018目标:一定要让nzhtl1477nzhtl1477nzhtl1477把罚抄打通!

这题当然是O(nn−−√+nlogn)O(nn+nlogn)O(n\sqrt{n}+nlogn)

先考虑全局最大子段和,全局加O(nlogn)O(nlogn)O(nlogn)怎么做。
考虑线段树,显然,如果我们每个区间维护一个答案函数f(x)f(x)f(x)表示加xxx时答案是多少,这题就做完了。
维护最大子段和,显然要维护三个函数:pre(x),suf(x),ans(x)" role="presentation" style="position: relative;">pre(x),suf(x),ans(x)pre(x),suf(x),ans(x)pre(x),suf(x),ans(x)

pre(x),suf(x)pre(x),suf(x)pre(x),suf(x)可以半平面交,由于斜率大于000,所以可以拿栈实现
ans(x)" role="presentation" style="position: relative;">ans(x)ans(x)ans(x)除了由两个儿子的ans(x)ans(x)ans(x)合并而来,还可以用左儿子的sufsufsuf,右儿子的preprepre合并。可以考虑维护双指针指向两个下凸壳,这样单调扫一遍与ansansans合并就行

回到原题,可以考虑分块,每块维护个线段树。

修改:对于中间的块,记333个指针指向三个分段函数,表示现在在哪一段,然后暴力ptr++" role="presentation" style="position: relative;">ptr++ptr++\texttt{ptr++}。两边零散的块暴力在线段树上修改经过的区间。这样修改的长度之和是O(n−−√)O(n)O(\sqrt{n})的,因为每层常数个区间被修改。然后指针清零,这样每次只会增加O(n−−√)O(n)O(\sqrt{n})次指针增加机会,所以指针增加次数还是O(nn−−√)O(nn)O(n\sqrt{n})

询问:两边零散的块暴力,O(n−−√)O(n)O(\sqrt{n})。中间的块:
1.1.\texttt{1.}答案在块里,用指针O(1)O(1)O(1)得到结果
2.2.\texttt{2.}答案跨越块。记一个maxsufmaxsuf\texttt{maxsuf},每次更新与计算是O(1)O(1)O(1)的。记得maxsuf=max(maxsuf,0)maxsuf=max(maxsuf,0)\texttt{maxsuf=max(maxsuf,0)}

然后复杂度就是O(nn−−√)O(nn)O(n\sqrt{n})

然而下列代码是被卡常的:(正确性倒是保证了)

#include<bits/stdc++.h>#define BLK 520
#define maxn 100100
#define xx first
#define yy second
#define LK(x) ((x)*kuai)
#define RK(x) min((x+1)*kuai,n)
using namespace std;
typedef long long ll;
typedef pair<ll,ll> par;
par mem[maxn*80],*ptr=mem,tmp1[maxn<<2],tmp2[maxn<<2],sta[maxn<<2],lxldl;
// AxB<CxD judge!
inline char nc(){static char buf[100000],*p1=buf,*p2=buf;return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}inline int rd(){char ch=nc();register int sum=0,f=0;while(!(ch>='0'&&ch<='9')&&ch!='-')ch=nc();if(ch=='-')f=1,ch=nc();while(ch>='0'&&ch<='9')sum=sum*10+ch-48,ch=nc();return f?-sum:sum;
}inline ll max(const ll& a,const ll& b){return a<b?b:a;
}
inline int jdg(par A,par B,par C,par D){ll a=(A.yy-B.yy)*(D.xx-C.xx);ll b=(C.yy-D.yy)*(B.xx-A.xx);return a==b?0:(a<b?-1:1);
}
inline ll cal(par A,ll x){return A.xx*x+A.yy;
}
par inline  _sum(par a,par b){return par(a.xx+b.xx,a.yy+b.yy);
}
bool inline cmp(par a,par b){return a.xx<b.xx||(a.xx==b.xx&&a.yy>b.yy);
}
struct WXHGGG{par *a;int size;void inline cp(par* bg,par* ed){size=ed-bg,memcpy(a,bg,sizeof(par)*size);}void inline cp(par* bg,int& sz){sz=size,memcpy(bg,a,sizeof(par)*size);}void inline rewrite(ll atg){int p;for(p=0;p+1<size&&cal(a[p],atg)<cal(a[p+1],atg);)p++;for(int i=p;i<size;++i)a[i].yy+=a[i].xx*atg,a[i-p]=a[i];size-=p;}void print(){printf("\n{size=%d}",size);for(int i=0;i<size;++i)printf("[%lld,%lld]",a[i].xx,a[i].yy);puts("");}
};
void inline LXLDuliu(int& tp,par lxldl){if(tp&&lxldl.xx==sta[tp-1].xx){sta[tp-1].yy=max(sta[tp-1].yy,lxldl.yy);return ;}while(tp>1&&jdg(sta[tp-2],sta[tp-1],sta[tp-1],lxldl)>=0)tp--;sta[tp++]=lxldl;
}
#pragma pack(1)
struct WXHTBQ{WXHGGG pre[1025],suf[1025],ans[1025];ll sum[1025],a[BLK],atg[1025],alltg;int n,len[1025],pans,ppre,psuf;void upd(int o){int tp=0,ls=o<<1,rs=o<<1|1;//merge prepre[ls].cp(sta,tp);for(int i=0;i<pre[rs].size;++i){lxldl=par(len[ls]+pre[rs].a[i].xx,sum[ls]+pre[rs].a[i].yy);LXLDuliu(tp,lxldl);}pre[o].cp(sta,sta+tp),tp=0;//merge sufsuf[rs].cp(sta,tp);for(int i=0;i<suf[ls].size;++i){lxldl=par(len[rs]+suf[ls].a[i].xx,sum[rs]+suf[ls].a[i].yy);LXLDuliu(tp,lxldl);}suf[o].cp(sta,sta+tp);int tp1=0,tp2=0;//merge ansfor(int lxl,dl=0,i=0,j=0;i<suf[ls].size-1||j<pre[rs].size-1;){tmp1[tp1++]=_sum(suf[ls].a[i],pre[rs].a[j]);if(i==suf[ls].size-1)j++;else if(j==pre[rs].size-1)i++;else lxl=jdg(suf[ls].a[i],suf[ls].a[i+1],pre[rs].a[j],pre[rs].a[j+1]),i+=(lxl<=dl),j+=(lxl>=dl);}tmp1[tp1++]=_sum(suf[ls].a[suf[ls].size-1],pre[rs].a[pre[rs].size-1]);for(int lxl,dl=0,i=0,j=0;i<ans[ls].size||j<ans[rs].size;){if(i==ans[ls].size)tmp2[tp2++]=ans[rs].a[j++];else if(j==ans[rs].size)tmp2[tp2++]=ans[ls].a[i++];else if(cmp(ans[ls].a[i],ans[rs].a[j]))tmp2[tp2++]=ans[ls].a[i++];else tmp2[tp2++]=ans[rs].a[j++];}tp=0;for(int lxl,dl=0,i=0,j=0;i<tp1||j<tp2;){if(i==tp1)lxldl=tmp2[j++];else if(j==tp2)lxldl=tmp1[i++];else if(cmp(tmp1[i],tmp2[j]))lxldl=tmp1[i++];else lxldl=tmp2[j++];LXLDuliu(tp,lxldl);}ans[o].cp(sta,sta+tp);sum[o]=sum[o<<1]+sum[o<<1|1];}void build(int o,int l,int r){pre[o].a=ptr,ptr+=r-l+1;suf[o].a=ptr,ptr+=r-l+1;pre[o].size=suf[o].size=ans[o].size=0;ans[o].a=ptr,ptr+=r-l+1;len[o]=r-l+1;if(l==r){sum[o]=a[l];pre[o].a[0]=suf[o].a[0]=par(1,a[l]);ans[o].a[0]=par(1,a[l]);pre[o].size=suf[o].size=ans[o].size=1;return ;}int mid=l+r>>1;build(o<<1,l,mid);build(o<<1|1,mid+1,r);upd(o);}void rewrite(int o,ll A){pre[o].rewrite(A);suf[o].rewrite(A);ans[o].rewrite(A);}void mdy(int o,int l,int r,int ql,int qr,ll A){if(ql<=l&&r<=qr){rewrite(o,A);sum[o]+=A*len[o],atg[o]+=A;return ;}int mid=l+r>>1;if(atg[o]){atg[o<<1]+=atg[o],sum[o<<1]+=len[o<<1]*atg[o];atg[o<<1|1]+=atg[o],sum[o<<1|1]+=len[o<<1|1]*atg[o];rewrite(o<<1,atg[o]),rewrite(o<<1|1,atg[o]);    }if(ql<=mid)mdy(o<<1,l,mid,ql,qr,A);if(qr>mid)mdy(o<<1|1,mid+1,r,ql,qr,A);atg[o]=0,upd(o);}void shift(ll tg){atg[1]+=tg,alltg+=tg,sum[1]+=len[1]*tg;while(pans+1<ans[1].size&&cal(ans[1].a[pans],alltg)<cal(ans[1].a[pans+1],alltg))pans++;while(ppre+1<pre[1].size&&cal(pre[1].a[ppre],alltg)<cal(pre[1].a[ppre+1],alltg))ppre++;while(psuf+1<suf[1].size&&cal(suf[1].a[psuf],alltg)<cal(suf[1].a[psuf+1],alltg))psuf++;}void init(ll* bg,ll* ed){n=ed-bg;for(int i=0;i<n;++i)a[i]=bg[i];build(1,0,n-1);     }void pd(ll* a){pans=ppre=psuf=0;for(int i=0;i<n;++i)a[i]+=alltg;rewrite(1,alltg);alltg=0;}#define ANS 1#define PRE 2#define SUF 3ll kagari(ll* a,ll* b,int FLAG){ll mn=0,nw=0,ans=0;if(FLAG==ANS)for(int i=0;i<b-a;++i)nw+=a[i]+alltg,mn=min(mn,nw),ans=max(ans,nw-mn);else if(FLAG==PRE)for(int i=0;i<b-a;++i)nw+=a[i]+alltg,ans=max(ans,nw);else for(int i=b-a-1;i>=0;--i)nw+=a[i]+alltg,ans=max(ans,nw);return ans;}
}s[BLK];
int kuai,n,m;
ll a[maxn];
int main(){freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);n=rd(),m=rd();for(int i=0;i<n;++i)a[i]=rd();kuai=450;int _m=(n+kuai-1)/kuai;for(int i=0;i<_m;++i)s[i].init(a+LK(i),a+RK(i)),s[i].shift(0);for(int i=0,op,l,r,x;i<m;++i){op=rd(),l=rd(),r=rd();l--,r--;if(op==1){x=rd();int bl=l/kuai,br=r/kuai;if(bl==br){s[bl].pd(a+LK(bl));for(int i=l;i<=r;++i)a[i]+=x;s[bl].mdy(1,0,s[bl].n-1,l%kuai,r%kuai,x);s[bl].shift(0);} else {if(l==LK(bl))s[bl].shift(x);else {s[bl].pd(a+LK(bl));for(int i=l;i<RK(bl);++i)a[i]+=x;s[bl].mdy(1,0,s[bl].n-1,l%kuai,s[bl].n-1,x);s[bl].shift(0); }if(r==RK(br)-1)s[br].shift(x);else {s[br].pd(a+LK(br));for(int i=LK(br);i<=r;++i)a[i]+=x;s[br].mdy(1,0,s[br].n-1,0,r%kuai,x);s[br].shift(0);}for(int j=bl+1;j<br;++j)s[j].shift(x);}} else {int bl=l/kuai,br=r/kuai;if(bl==br){printf("%lld\n",max(0ll,s[bl].kagari(a+l,a+r+1,ANS)));} else {ll ans=max(s[bl].kagari(a+l,a+RK(bl),ANS),s[br].kagari(a+LK(br),a+r+1,ANS));ll sum=s[bl].kagari(a+l,a+RK(bl),SUF);for(int i=bl+1;i<br;++i)ans=max(ans,cal(s[i].pre[1].a[s[i].ppre],s[i].alltg)+sum),ans=max(ans,cal(s[i].ans[1].a[s[i].pans],s[i].alltg)),sum+=s[i].sum[1],sum=max(sum,cal(s[i].suf[1].a[s[i].psuf],s[i].alltg)),sum=max(sum,0ll);ans=max(ans,sum+s[br].kagari(a+LK(br),a+r+1,PRE));printf("%lld\n",max(0ll,ans));}}}
} 

UPD:卡常大成功!秘诀:将线段树根节点的内存分配在一起,rewrite次数可以优化,merge ans的时候可以先把两边压到栈里再归并

实际上前2个最有用,因为BZOJ老爷机内存访问巨慢。。。

#include<bits/stdc++.h>
#define BLK 460
#define maxn 100100
#define xx first
#define yy second
#define LK(x) ((x)*kuai)
#define RK(x) min((x+1)*kuai,n)
using namespace std;
typedef long long ll;
typedef pair<ll,ll> par;
char outbuf[1<<24],*O=outbuf;
par mem[maxn*70],*ptr=mem,*nptr=mem,tmp1[maxn<<2],tmp2[maxn<<2],tmp3[maxn<<2],sta[maxn<<2],lxldl;
// AxB<CxD judge!
inline char nc(){static char buf[100000],*p1=buf,*p2=buf;return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}inline int rd(){register int sum=0,f=0;
//    scanf("%d",&sum);
//    return sum;char ch=nc();while(!(ch>='0'&&ch<='9')&&ch!='-')ch=nc();if(ch=='-')f=1,ch=nc();while(ch>='0'&&ch<='9')sum=sum*10+ch-48,ch=nc();return f?-sum:sum;
}
void print(ll x){if(!x)*O++='0';static char s[100],*t=s;ll y=0;while(x)y=x/10,*t++=x-10*y+'0',x=y;while(t!=s)*O++=*--t;*O++='\n';
}
inline ll max(const ll& a,const ll& b){return a<b?b:a;
}
inline int jdg(par A,par B,par C,par D){ll a=(A.yy-B.yy)*(D.xx-C.xx);ll b=(C.yy-D.yy)*(B.xx-A.xx);return a==b?0:(a<b?-1:1);
}
inline ll cal(par A,ll x){return A.xx*x+A.yy;
}
par inline  _sum(par a,par b){return par(a.xx+b.xx,a.yy+b.yy);
}
bool inline cmp(par a,par b){return a.xx<b.xx||(a.xx==b.xx&&a.yy>b.yy);
}
struct WXHGGG{par *a;int size;void cp(par* bg,par* ed){size=ed-bg,memcpy(a,bg,sizeof(par)*size);}void cp(par* bg,int& sz){sz=size,memcpy(bg,a,sizeof(par)*size);}void rewrite(ll atg){int p;for(p=0;p+1<size&&cal(a[p],atg)<cal(a[p+1],atg);)p++;for(int i=p;i<size;++i)a[i].yy+=a[i].xx*atg,a[i-p]=a[i];size-=p;}void print(){printf("\n{size=%d}",size);for(int i=0;i<size;++i)printf("[%lld,%lld]",a[i].xx,a[i].yy);puts("");}
};
void inline LXLDuliu(int& tp,par lxldl,par* sta=::sta){if(tp&&lxldl.xx==sta[tp-1].xx){sta[tp-1].yy=max(sta[tp-1].yy,lxldl.yy);return ;}while(tp>1&&jdg(sta[tp-2],sta[tp-1],sta[tp-1],lxldl)>=0)tp--;sta[tp++]=lxldl;
}
struct WXHTBQ{WXHGGG pre[BLK<<2],suf[BLK<<2],ans[BLK<<2];ll a[BLK],sum[BLK<<2],atg[BLK<<2],alltg,_pans,_ppre,_psuf;int n,len[BLK<<2],pans,ppre,psuf;void upd(int o){int tp=0,ls=o<<1,rs=o<<1|1;//merge prepre[ls].cp(sta,tp);for(int i=0;i<pre[rs].size;++i){lxldl=par(len[ls]+pre[rs].a[i].xx,sum[ls]+pre[rs].a[i].yy);LXLDuliu(tp,lxldl);}pre[o].cp(sta,sta+tp),tp=0;//merge sufsuf[rs].cp(sta,tp);for(int i=0;i<suf[ls].size;++i){lxldl=par(len[rs]+suf[ls].a[i].xx,sum[rs]+suf[ls].a[i].yy);LXLDuliu(tp,lxldl);}suf[o].cp(sta,sta+tp);int tp1=0,tp2=0;//merge ansfor(int lxl,dl=0,i=0,j=0;i<suf[ls].size-1||j<pre[rs].size-1;){tmp1[tp1++]=_sum(suf[ls].a[i],pre[rs].a[j]);if(i==suf[ls].size-1)j++;else if(j==pre[rs].size-1)i++;else lxl=jdg(suf[ls].a[i],suf[ls].a[i+1],pre[rs].a[j],pre[rs].a[j+1]),i+=(lxl<=dl),j+=(lxl>=dl);}tmp1[tp1++]=_sum(suf[ls].a[suf[ls].size-1],pre[rs].a[pre[rs].size-1]);for(int lxl,dl=0,i=0,j=0;i<ans[ls].size||j<ans[rs].size;){if(i==ans[ls].size)lxldl=ans[rs].a[j++];else if(j==ans[rs].size)lxldl=ans[ls].a[i++];else if(cmp(ans[ls].a[i],ans[rs].a[j]))lxldl=ans[ls].a[i++];else lxldl=ans[rs].a[j++];LXLDuliu(tp2,lxldl,tmp2);}tp=0;for(int lxl,dl=0,i=0,j=0;i<tp1||j<tp2;){if(i==tp1)lxldl=tmp2[j++];else if(j==tp2)lxldl=tmp1[i++];else if(cmp(tmp1[i],tmp2[j]))lxldl=tmp1[i++];else lxldl=tmp2[j++];LXLDuliu(tp,lxldl);}ans[o].cp(sta,sta+tp);sum[o]=sum[o<<1]+sum[o<<1|1];}void build(int o,int l,int r){if(o>1){pre[o].a=ptr,ptr+=r-l+1;suf[o].a=ptr,ptr+=r-l+1;ans[o].a=ptr,ptr+=r-l+1;    } else {pre[o].a=nptr,nptr+=r-l+1;suf[o].a=nptr,nptr+=r-l+1;ans[o].a=nptr,nptr+=r-l+1;}pre[o].size=suf[o].size=ans[o].size=0;len[o]=r-l+1;if(l==r){sum[o]=a[l];pre[o].a[0]=suf[o].a[0]=par(1,a[l]);ans[o].a[0]=par(1,a[l]);pre[o].size=suf[o].size=ans[o].size=1;return ;}int mid=l+r>>1;build(o<<1,l,mid);build(o<<1|1,mid+1,r);upd(o);}void rewrite(int o,ll A){pre[o].rewrite(A);suf[o].rewrite(A);ans[o].rewrite(A);}void mdy(int o,int l,int r,int ql,int qr,ll A,ll tg=0){if(ql<=l&&r<=qr){rewrite(o,A+tg);sum[o]+=A*len[o],atg[o]+=A;return ;}int mid=l+r>>1;if(atg[o]){atg[o<<1]+=atg[o],sum[o<<1]+=len[o<<1]*atg[o];atg[o<<1|1]+=atg[o],sum[o<<1|1]+=len[o<<1|1]*atg[o];if(ql>mid)rewrite(o<<1,atg[o]);if(qr<=mid)rewrite(o<<1|1,atg[o]);  }if(ql<=mid)mdy(o<<1,l,mid,ql,qr,A,atg[o]);if(qr>mid)mdy(o<<1|1,mid+1,r,ql,qr,A,atg[o]);atg[o]=0,upd(o);}void shift(ll tg){atg[1]+=tg,alltg+=tg,sum[1]+=len[1]*tg;while(pans+1<ans[1].size&&cal(ans[1].a[pans],alltg)<cal(ans[1].a[pans+1],alltg))pans++;while(ppre+1<pre[1].size&&cal(pre[1].a[ppre],alltg)<cal(pre[1].a[ppre+1],alltg))ppre++;while(psuf+1<suf[1].size&&cal(suf[1].a[psuf],alltg)<cal(suf[1].a[psuf+1],alltg))psuf++;_pans=cal(ans[1].a[pans],alltg);_ppre=cal(pre[1].a[ppre],alltg);_psuf=cal(suf[1].a[psuf],alltg);}void init(ll* bg,ll* ed){n=ed-bg;for(int i=0;i<n;++i)a[i]=bg[i];build(1,0,n-1);     }void pd(ll* a){pans=ppre=psuf=0;for(int i=0;i<n;++i)a[i]+=alltg;rewrite(1,alltg);alltg=0;}#define ANS 1#define PRE 2#define SUF 3ll kagari(ll* a,ll* b,int FLAG){ll mn=0,nw=0,ans=0;if(FLAG==ANS)for(int i=0;i<b-a;++i)nw+=a[i]+alltg,mn=min(mn,nw),ans=max(ans,nw-mn);else if(FLAG==PRE)for(int i=0;i<b-a;++i)nw+=a[i]+alltg,ans=max(ans,nw);else for(int i=b-a-1;i>=0;--i)nw+=a[i]+alltg,ans=max(ans,nw);return ans;}
}s[BLK];
int kuai,n,m;
ll a[maxn];inline int rd2(){char ch=nc();while(!(ch>='A'&&ch<='Z'))ch=nc();return ch=='A'?1:2;
}
int main(){
//  freopen("in.txt","r",stdin);
//  freopen("out.txt","w",stdout);n=rd(),m=rd();for(int i=0;i<n;++i)a[i]=rd();kuai=450;ptr+=3*n;int _m=(n+kuai-1)/kuai;for(int i=0;i<_m;++i)s[i].init(a+LK(i),a+RK(i)),s[i].shift(0);for(int i=0,op,l,r,x;i<m;++i){op=rd(),l=rd(),r=rd();l--,r--;if(op==1){x=rd();int bl=l/kuai,br=r/kuai;if(bl==br){s[bl].pd(a+LK(bl));for(int i=l;i<=r;++i)a[i]+=x;s[bl].mdy(1,0,s[bl].n-1,l%kuai,r%kuai,x);s[bl].shift(0);} else {if(l==LK(bl))s[bl].shift(x);else {s[bl].pd(a+LK(bl));for(int i=l;i<RK(bl);++i)a[i]+=x;s[bl].mdy(1,0,s[bl].n-1,l%kuai,s[bl].n-1,x);s[bl].shift(0); }for(int j=bl+1;j<br;++j)s[j].shift(x);if(r==RK(br)-1)s[br].shift(x);else {s[br].pd(a+LK(br));for(int i=LK(br);i<=r;++i)a[i]+=x;s[br].mdy(1,0,s[br].n-1,0,r%kuai,x);s[br].shift(0);}}} else {int bl=l/kuai,br=r/kuai;if(bl==br){print(max(0ll,s[bl].kagari(a+l,a+r+1,ANS)));} else {ll ans=max(s[bl].kagari(a+l,a+RK(bl),ANS),s[br].kagari(a+LK(br),a+r+1,ANS));ll sum=s[bl].kagari(a+l,a+RK(bl),SUF);for(int i=bl+1;i<br;++i)ans=max(ans,s[i]._ppre+sum),ans=max(ans,s[i]._pans),sum+=s[i].sum[1],sum=max(sum,s[i]._psuf),sum=max(sum,0ll);ans=max(ans,sum+s[br].kagari(a+LK(br),a+r+1,PRE));print(max(0ll,ans));}}}fwrite(outbuf,1,O-outbuf,stdout);
} 

bzoj5144 [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?相关推荐

  1. [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?

    这道题真的超级...毒瘤 + 卡常 + 耗 RP 啊... 传送门 noteskey 题解看 shadowice 大仙 的 code 如果发现自己 T 掉了,别心急,洗把脸再交一遍试试... //by ...

  2. 【末日时在做什么?有没有空?可以来拯救吗?】Scarborough Fair

    珂朵莉:我曾经发誓要永远和他在一起,能够如此发誓,让我无比幸福. 威廉:我曾经发誓要永远和她在一起,能够如此发誓,让我心获安详. 珂朵莉:我曾经以为自己喜欢这个人, 威廉:我曾经觉得自己非常珍视她, ...

  3. SAP PP 为工单确认时自动做收货的设置

    SAP PP 为工单确认时自动做收货的设置 TCode: OP67 Micro Message: JINYULIN_SH_

  4. 蔚来一面:用Object做hashMap的Key时需要做什么?

    作者 | petterp 来源 | https://blog.csdn.net/petterp/article/details/89043847 先来说一下hashcode()和equals方法吧. ...

  5. 《编写高质量代码:改善c程序代码的125个建议》——建议4-1:整数转换为新类型时必须做范围检查...

    本节书摘来自华章计算机<编写高质量代码:改善c程序代码的125个建议>一书中的第1章,建议4-1,作者:马 伟 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  6. 【报错笔记】在做struts项目时,所有项目代码没问题但就是报404错误。

    在做struts项目时,所有项目代码没问题但就是报404错误,而且tomcat一次只能运行一个项目,做第二个得关闭tomcat,清空再开启运行. 我重新下载了tomcat9还是那样,可能是eclips ...

  7. 《编写高质量代码:改善c程序代码的125个建议》——建议4-2:浮点数转换为新类型时必须做范围检查...

    本节书摘来自华章计算机<编写高质量代码:改善c程序代码的125个建议>一书中的第1章,建议4-2,作者:马 伟 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  8. YARN - Task, Node manager, AppMaster, Resource manager 失败时所做的处理

    本文为< Hadoop 权威指南第四版 >(英文原版) 读书笔记,仅限交流使用,转载请注明出处,多谢. YARN - 失败时所做的处理 Henvealf/文 YARN 的失败总共包含四种实 ...

  9. 面试时怎样做精彩的自我介绍

    面试时怎样做精彩的自我介绍 在应届生找工作 面试时,大多数面试考官会要求应届生求职者 做一个自我介绍,一方面以此了解应届生求职者 的大概情况,另一方面考察应届生求职者的口才.应变和心理承受.逻辑思维等 ...

最新文章

  1. 前端基础之JQuery
  2. 8.STM32中对ADC1_Config()函数(ADC1_GPIO_Config()和ADC1_Mode_Config())的理解(自定义)测试ADC转换电压值输出到终端上。
  3. 理解Go语言中的方法和接收者
  4. 前端学习(1932)vue之电商管理系统电商系统之tree树形控件
  5. ASP.net的RUL重写
  6. 除了工作怎么交朋友_老梁:交朋友要交比自己强的,结交和自己相似的人,不如没有朋友...
  7. IP Scanner Pro for mac(局域网IP扫描软件)
  8. 递归系列——数组和对象的相关递归
  9. pyLDA系列︱gensim中带'监督味'的作者-主题模型(Author-Topic Model)
  10. 【AcWing】语法基础课听课笔记
  11. Python画一个中国地图玩玩
  12. 撩妹情话套路大全 2021高级情话套路好甜齁
  13. 8bit音乐的一些相关知识
  14. 1 分钟 Serverless 搭建你的首个个人网站(完成就送猫超卡)
  15. win10亮度进度条不见了
  16. 解决ftp 出现Passive mode refused的办法
  17. 我喜欢用计算机300,我最喜欢的游戏作文300字(精选10篇)
  18. 行走的Offer收割机,首次公布Java10W字面经,Github访问量破百万
  19. 疫情期间,Java菜鸟“面霸”养成记!(中兴+腾讯+乐视+京东.....)
  20. oracle恢复删除数据1440,Oracle数据误删了怎么恢复

热门文章

  1. 小项目分享:51单片机音乐喷泉制作全过程资料(附送给初学者的忠告)
  2. 配置方法_10种头孢皮试液配置方法
  3. 四相交错并联同步整流Buck变换器
  4. 【通信原理| OFDM技术的最简讲解(下)】DFT 与 OFDM
  5. 职场 | 在职场中,有哪些习惯我们需要养成?
  6. SEO网站站长如何写一篇高质量的软文
  7. 123457123456#1#----com.ppGame.BaoBaoiMiYu35--前拼后广--miyu_pp
  8. 怎么把视频制作成gif动图?一个小妙招轻松帮你快速视频转gif
  9. rocketmq 入门(一)rocketmq控制台搭建
  10. Python爬虫编程6——selenium