全面系统讲解CSS工作应用+面试一步搞定

116 阅读1分钟

download:全面系统讲解CSS工作应用+面试一步搞定

CSS是前端开发过程中必不可少的知识点,也是最难彻底掌握的部分。本课程系统梳理CSS中各方面的知识点,帮助前端工程师更清晰地了解实际工作中如何应用CSS技术的,更好地面对日常使用和顺利通过面试关!

适合人群及技术储备要求
只要有HTML、CSS基础就能学习!无论是即将毕业的学生,或是想转行做前端开发,还是有一定工作经验的前端
开发者,本课程都能帮助你建立起CSS的知识体系,更好地应对各种CSS需求,且让你在前端面试中脱颖而出!

学前必备技术
HTML基础 / CSS基础
//Don't act like a loser.//This code is written by huayucaiji//You can only use the code for studying or finding mistakes//Or,you'll be punished by Sakyamuni!!!#include<bits/stdc++.h>#define int long longusing namespace std;int read() { char ch=getchar(); int f=1,x=0; while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x

10+ch-'0'; ch=getchar(); } return f

x;}const int MAXN=1e5+10;int n,m;int a[MAXN];struct seg_tree { int lazy,num[2][21];}s[MAXN<<2];void pushdown(int l,int r,int p) { if(l==r) { return ; } s[p<<1].lazy^=s[p].lazy; s[p<<1|1].lazy^=s[p].lazy; for(int i=0;i<=20;i++) { if(s[p].lazy&(1<<i)) { swap(s[p<<1].num[0][i],s[p<<1].num[1][i]); swap(s[p<<1|1].num[0][i],s[p<<1|1].num[1][i]); } } s[p].lazy=0;}void build(int l,int r,int p) { if(l==r) { for(int i=0;i<=20;i++) { s[p].num[a[l]&(1<<i)? 1:0][i]++; } s[p].lazy=0; return ; } int mid=(l+r)>>1; build(l,mid,p<<1); build(mid+1,r,p<<1|1); for(int i=0;i<=20;i++) { s[p].num[1][i]=s[p<<1].num[1][i]+s[p<<1|1].num[1][i]; s[p].num[0][i]=s[p<<1].num[0][i]+s[p<<1|1].num[0][i]; }}void modify(int l,int r,int p,int x,int y,int val) { pushdown(l,r,p); if(r<x||y<l) { return ; } if(x<=l&&r<=y) { for(int i=0;i<=20;i++) { if(val&(1<<i)) { swap(s[p].num[0][i],s[p].num[1][i]); } } s[p].lazy=val; return ; } int mid=(l+r)>>1; modify(l,mid,p<<1,x,y,val); modify(mid+1,r,p<<1|1,x,y,val); for(int i=0;i<=20;i++) { s[p].num[1][i]=s[p<<1].num[1][i]+s[p<<1|1].num[1][i]; s[p].num[0][i]=s[p<<1].num[0][i]+s[p<<1|1].num[0][i]; }}int query(int l,int r,int p,int x,int y) { pushdown(l,r,p); if(r<x||y<l) { return 0; } if(x<=l&&r<=y) { int ret=0; for(int i=0;i<=20;i++) { ret+=(1<<i)*s[p].num[1][i]; } return ret; } int mid=(l+r)>>1; return query(l,mid,p<<1,x,y)+query(mid+1,r,p<<1|1,x,y);}signed main() { cin>>n; for(int i=1;i<=n;i++) { a[i]=read(); } build(1,n,1); cin>>m; for(int i=1;i<=m;i++) { int opt=read(); if(opt==2) { int x=read(),y=read(),val=read(); modify(1,n,1,x,y,val); } else { int x=read(),y=read(); printf("%lld\n",query(1,n,1,x,y)); } } return 0;}