说在前面:强烈谴责AK神Mr_zkt没有丝毫素质RP--

然而我也想没素质一次,但是我没机会AK一套除了B组题以外的题。。。

太菜了,没权力。人家AK了人家就是牛逼你没话说

达哥的题必须好好写反思。

达哥的题令我恐惧。

之前考的所有达哥的题都不是很难,甚至有AK的,只有我每逢达哥就爆炸。炸得特别惨。

所以今天看到考试标题lrd day1时我就绝望了。

但是这次的题的确还是比较简单,前两题56分钟足以解决。

然后T3被我伪证了,我以为最多每个点周围只有两个联通块。

然后打出来了,128分钟的时候,我觉得我AK了。

但是吸取我这次没有太飘,打对拍。

但是说是在的,效率很低。

然后10分钟拍上T1。

然后T2的暴力死活调不出来,调了45分钟左右才弄出来。

然而其实大样例不水(是最大的一档数据)其实不那么需要对拍。

然后T3的对拍打了一半,发现还有5分钟,就算拍出来了也来不及改了,就挂机了。

然而T3的下发数据很水导致我的伪证没有被hack,而对拍一会就出来了。

考试结束。

总算没有又一次在达哥手下死无全尸。

当有大样例时优先拍大样例比较水的题。

在三道题都打完之后仍然要保持较高的效率打对拍。

话说今天这么简单的话明天的题是不是要跪啊。。。

T1:位运算

大规模手动分类讨论。

 #include<cstdio>
int pre[][][];
int main(){//freopen("ex_bit.in","r",stdin);
pre[][][]=;
pre[][][]=;
pre[][][]=;
int t,XOR,OR,AND;long long ans=;scanf("%d",&t);
while(t--){
scanf("%d%d%d",&AND,&OR,&XOR);ans=;
if(AND!=-&&OR==-&&XOR==-){puts("inf");}
if(AND==-&&OR!=-&&XOR==-){for(int i=;i<;++i)if(OR&<<i)ans*=;printf("%lld\n",ans);}
if(AND==-&&OR==-&&XOR!=-){puts("inf");}
if(AND!=-&&OR!=-&&XOR==-){
for(int i=;i<;++i)if((OR&<<i)==&&(AND&<<i)!=)ans*=;
else if((OR&<<i)!=&&(AND&<<i)==)ans*=;
printf("%lld\n",ans);
}
if(AND!=-&&OR==-&&XOR!=-){
for(int i=;i<;++i)if((XOR&<<i)!=&&(AND&<<i)!=)ans*=;
else if((XOR&<<i)!=&&(AND&<<i)==)ans*=;
printf("%lld\n",ans);
}
if(AND==-&&OR!=-&&XOR!=-){
for(int i=;i<;++i)if((XOR&<<i)!=&&(OR&<<i)==)ans*=;
else if((XOR&<<i)!=&&(OR&<<i)!=)ans*=;
printf("%lld\n",ans);
}
if(AND!=-&&OR!=-&&XOR!=-){
for(int i=;i<;++i)ans*=pre[(AND&<<i)>][(OR&<<i)>][(XOR&<<i)>];
printf("%lld\n",ans);
}
}
}

T2:集合论

套路题。对于加减法开一个全局的标记,然后套一个哈希表就行。

开一个时间戳,求交集的时候更新一下时间戳,这样,时间戳没有被更新的就相当于被删除了。

 #include<cstdio>
struct hash_map{
#define S 20000005
int fir[S],l[S],to[S],w[S],c;
int &operator[](int x){int r=(x+S)%S;
for(int i=fir[r];i;i=l[i])if(to[i]==x)return w[i];
l[++c]=fir[r];fir[r]=c;to[c]=x;return w[c];
}
}M;
char xch,xB[<<],*xS=xB,*xTT=xB;
#define getc() (xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xTT)?0:*xS++)
inline int read()
{
int x=,f=;char ch=getc();
while(ch<''|ch>''){if(ch=='-')f=-;ch=getc();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getc();}
return x*f;
}
int main(){//freopen("ex_jihe5.in","r",stdin);freopen("t2.out","w",stdout);
int m=read(),lz=,sz=,cnt=;long long tot=;
while(m--){
int opt=read();
if(opt==){
int x=read(),p;
while(x--){
p=read();
if(M[p-lz]!=cnt)M[p-lz]=cnt,sz++,tot+=p;
}
}else if(opt==){
int x=read(),p;sz=tot=;cnt++;
while(x--){
p=read();
if(M[p-lz]==cnt-)M[p-lz]=cnt,sz++,tot+=p;
}
}else if(opt==)tot+=sz,lz++;
else tot-=sz,lz--;
printf("%lld\n",tot);
}
}

T3:连连看

写的稍工业。

map跑的比哈希表块。

要统计点对,那么就是维护之前扫过的所有块里面和当前块的相邻空块完全一样的,且颜色也一样的个数。

两个点可能会出现有4个相邻空块都相同的情况。

盗达哥的图2333

所以考虑容斥。奇加偶减。

把每一个点的相邻空块都拆开,写成所有子集的形式。

扫一边,对于每一个位置查一下加一下。

最后统计一下直接相邻的同颜色的贡献。

注意它贡献答案的前提是两者不再任何一个相同的空块里。

码很长,写傻逼了。(子集枚举可以写成状压的,我是手动讨论16种情况。。。)

 #include<cstdio>
#include<map>
using namespace std;
struct P{
int bl1,bl2,bl3,bl4,col;
friend bool operator<(P a,P b){
if(a.col!=b.col)return a.col<b.col;
if(a.bl1!=b.bl1)return a.bl1<b.bl1;
if(a.bl2!=b.bl2)return a.bl2<b.bl2;
if(a.bl3!=b.bl3)return a.bl3<b.bl3;
return a.bl4<b.bl4;
}
};
map<P,int>M;
char xch,xB[<<],*xS=xB,*xTT=xB;
#define getc() (xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xTT)?0:*xS++)
inline int read()
{
int x=,f=;char ch=getc();
while(ch<''|ch>''){if(ch=='-')f=-;ch=getc();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getc();}
return x*f;
}
int co[][],n,k,m,al[][],tim,bl[][][];
const int ax[]={,,,-},ay[]={,-,,};
#define tx x+ax[i]
#define ty y+ay[i]
void bfs(int x,int y){
al[x][y]=tim;
if(co[x][y]){
if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else bl[][x][y]=tim;
return;
}
for(int i=;i<=;++i)if(tx>&&ty>&&tx<=n&&ty<=m&&al[tx][ty]!=tim)bfs(tx,ty);
}
int main(){//freopen("ex_link5.in","r",stdin);
n=read();m=read();k=read();long long ans=;
for(int i=;i<=n;++i)for(int j=;j<=m;++j)co[i][j]=read();
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]==&&al[i][j]==)tim++,bfs(i,j);
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]){
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}],M[(P){bl[][i][j],,,,co[i][j]}]++;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}],M[(P){bl[][i][j],,,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}],M[(P){bl[][i][j],,,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]++;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}],M[(P){bl[][i][j],,,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]++,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]++,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]++,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}],M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]++,
ans-=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],bl[][i][j],co[i][j]}],M[(P){bl[][i][j],bl[][i][j],bl[][i][j],bl[][i][j],co[i][j]}]++;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i][j-]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i][j-]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i-][j]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i-][j]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
printf("%lld\n",ans);
}

码如砖块

upd:我太傻逼了哈希写崩了!!!手写的哈希表还是要比map快的(2500ms/1570ms)

 #include<cstdio>
struct P{int bl1,bl2,bl3,bl4,col;};
struct hash_map{
int fir[],l[],to_bl1[],to_bl2[];
int to_bl3[],to_bl4[],to_col[],w[],c;
#define mod 100000003
#define g 31313
int &operator[](P x){
int hsh=((((1ll*x.bl1*g+x.bl2)%mod*g+x.bl3)%mod*g+x.bl4)%mod*g+x.col)%mod;
for(int i=fir[hsh];i;i=l[i])if(to_bl1[i]==x.bl1&&to_bl2[i]==x.bl2&&to_bl3[i]==x.bl3&&to_bl4[i]==x.bl4&&to_col[i]==x.col){w[i]++;return w[i];}
l[++c]=fir[hsh];fir[hsh]=c;to_bl1[c]=x.bl1;to_bl2[c]=x.bl2;to_bl3[c]=x.bl3;to_bl4[c]=x.bl4;to_col[c]=x.col;return w[c]=;
}
}M;
char xch,xB[<<],*xS=xB,*xTT=xB;
#define getc() (xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xTT)?0:*xS++)
inline int read()
{
int x=,f=;char ch=getc();
while(ch<''|ch>''){if(ch=='-')f=-;ch=getc();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getc();}
return x*f;
}
int co[][],n,k,m,al[][],tim,bl[][][];
const int ax[]={,,,-},ay[]={,-,,};
#define tx x+ax[i]
#define ty y+ay[i]
void bfs(int x,int y){
al[x][y]=tim;
if(co[x][y]){
if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else bl[][x][y]=tim;
return;
}
for(int i=;i<=;++i)if(tx>&&ty>&&tx<=n&&ty<=m&&al[tx][ty]!=tim)bfs(tx,ty);
}
int main(){//freopen("ex_link5.in","r",stdin);
n=read();m=read();k=read();long long ans=;
for(int i=;i<=n;++i)for(int j=;j<=m;++j)co[i][j]=read();
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]==&&al[i][j]==)tim++,bfs(i,j);
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]){
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],bl[][i][j],co[i][j]}]-;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i][j-]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i][j-]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i-][j]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i-][j]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
printf("%lld\n",ans);
}

但它还是个砖块

upd2:稍优化了一下。1450ms。码长总算降到了2.8k。(手动讨论占了一半。。。)

 #include<cstdio>
struct P{int bl1,bl2,bl3,bl4,col;};
struct hash_map{
int fir[],l[],to_col[],w[],c;
#define mod 100000003
#define g 31313
int &operator[](P x){
int hsh=((((1ll*x.bl1*g+x.bl2)*g+x.bl3)%mod*g+x.bl4)*g+x.col)%mod;
for(int i=fir[hsh];i;i=l[i])if(to_col[i]==x.col){w[i]++;return w[i];}
l[++c]=fir[hsh];fir[hsh]=c;to_col[c]=x.col;return w[c]=;
}
}M;
char xch,xB[<<],*xS=xB,*xTT=xB;
#define getc() (xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xTT)?0:*xS++)
inline int read()
{
int x=,f=;char ch=getc();
while(ch<''|ch>''){if(ch=='-')f=-;ch=getc();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getc();}
return x*f;
}
int co[][],n,k,m,al[][],tim,bl[][][];
const int ax[]={,,,-},ay[]={,-,,};
#define tx x+ax[i]
#define ty y+ay[i]
void bfs(int x,int y){
al[x][y]=tim;
if(co[x][y]){
if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else if(!bl[][x][y])bl[][x][y]=tim;
else bl[][x][y]=tim;
return;
}
for(int i=;i<=;++i)if(tx>&&ty>&&tx<=n&&ty<=m&&al[tx][ty]!=tim)bfs(tx,ty);
}
int main(){//freopen("ex_link5.in","r",stdin);
n=read();m=read();k=read();long long ans=;
for(int i=;i<=n;++i)for(int j=;j<=m;++j)co[i][j]=read();
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]==&&al[i][j]==)tim++,bfs(i,j);
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]){
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-;
if(bl[][i][j])
ans+=M[(P){bl[][i][j],,,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],,,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans+=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],,co[i][j]}]-,
ans-=M[(P){bl[][i][j],bl[][i][j],bl[][i][j],bl[][i][j],co[i][j]}]-;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i][j-]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i][j-]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
for(int i=;i<=n;++i)for(int j=;j<=m;++j)if(co[i][j]&&co[i][j]==co[i-][j]){
int A=;
for(int k=;k<=;++k)for(int l=;l<=;++l)if(bl[k][i-][j]==bl[l][i][j]&&bl[l][i][j]){A=;break;}
ans+=A;
}
printf("%lld\n",ans);
}

不要想了还是砖块

[考试反思]1017csp-s模拟测试77(lrd day1) :反抗的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. [考试反思]1018csp-s模拟测试78(lrd day2) :规律

    zkt没素质果然考炸了! 但是他考炸了和我一个分 这场的状态是真的不好,T3比较简单但没有做,一直干T2结果还是跪了 T1的哈希写挂了,模数比int大了结果一乘就炸long long了. 调了一个小时 ...

  3. csp-s模拟测试77+78(lrd day1&2)

    RP-=inf....... 一场考试把rp败光...由于本次考试本人在考试中乱说自己AK导致rp--,本人当选为机房倒数第二没素质 不过AK一次还挺开心的... 达哥出的题还是比较简单的. T1:考 ...

  4. csps模拟测试 77爆零反思

    题不算太难,可是我还是没考出应有水平. $1h8min$切掉前两道题,然后$T3$想到正解并且码出来了并且过了大样例并且爆零. 没什么好说的,我太自信了,没打对拍? 想到了正解,还不如随便打个暴力分高 ...

  5. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  6. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  7. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  8. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  9. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

随机推荐

  1. 【转】ICMP协议

    1.ICMP出现的原因 在IP通信中,经常有数据包到达不了对方的情况.原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了.或者,虽然到达了对方,但是由于搞错了端口号 ...

  2. Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇

    上一期我们介绍了如何基于 Knative Serverless 技术实现天气服务-上篇,首先我们先来回顾一下上篇介绍的内容: 通过高德天气 API 接口,每隔 3 个小时定时发送定时事件,将国内城市未 ...

  3. pinpoint1.8.5安装及使用指南

    简介 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控.它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的. 各大APM ...

  4. B-微积分-sign(符号)函数

    目录 sign(符号)函数 一.sign函数概述 二.python实现sign函数 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:h ...

  5. django2.0+连接mysql数据库迁移时候报错

    django2.0+连接mysql数据库迁移时候报错 情况一 错误信息 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 ...

  6. Flask的请求扩展

    from flask import Flask,request app = Flask(__name__) 一.请求前 before_request 用法 @app.before_request de ...

  7. windows显示文件后缀名

    win+E 进入到计算机 点击组织 点击文件夹和搜索选项 先点击查看,然后去掉勾选隐藏已知文件类型的扩展名

  8. 什么是IDS/IPS?

    目录   摘要 0x00 基于网络的IDS和IPS0x01 设计考虑因素0X02 IDS/IPS 总结           摘要 摘要 这篇文章主要介绍的是入侵检测系统(IDS)和入侵防御系统(IPS ...

  9. js随机生成验证码以及随机颜色

    Javascript通过Math.random()随机生成验证码. 代码如下: <!DOCTYPE html><html> <head> <meta char ...

  10. Python开发【第十篇】集合

    集合的运算 & 交集 | 并集 - 补集 ^ 对称补集 < 子集 > 超集 例子: 生成两个集合的并集 s1 = {1,2,3} s2 = {2,3,4} s3 = s1|s2 # ...