说在前面:强烈谴责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. Creator3D长什么样?看看官方惊艳的DEMO就知道了,附在线体验!

    Shawn 这两天在学习 Creator3D 的官方案例,由于是刚接触 Creator3D 很多东西在没弄清楚之前还是以简单的编辑介绍为主,先了解一下3D场景的基本操作: 观查场景:按住鼠标右键以自己 ...

  2. Android_布局

    <该文章参考各大博客以及书籍总结而来,如有问题欢迎指出^ ^> 一.五大传统布局+新布局 线性布局——LinearLayout 相对布局——RelativeLayout 帧布局——Fram ...

  3. xamarin开发的mac开发小工具集合

    兄弟们我拖控件拖到了mac系统去了, 工具上传到百度网盘,下载地址 链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww提取码:ljx2 这款工具我是用 ...

  4. Java中Integer与int对比的一些坑

    Integer与int类型的关系 Integer是int的包装类,int的默认值是0,而Integer的默认值是null(我们经常在代码中使用的Integer.valueOf() 和xx.intVal ...

  5. 合并果子(STL优先队列)

    STL优先队列:priority_queue 定义:priority_queue<int>q; 从小到大:priority_queue<int,vector<int>,g ...

  6. Mac搭建 Eclipse +Pydev+Python 环境

    Mac配置Python开发环境(Eclipse +Pydev+Python) 1.首先下载MAC版的64位Eclipse. eclips下载地址打开链接,选择需要的版本下载 2.下载Python. M ...

  7. 1.C&DataStructure引言

    使用过C++ <STD> 库的猿友们应该都觉得 C++中那些已经实现好了的数据类型封装使用让人很是舒服; 例如 vector 支持自动扩充数组,支持模板类,任何数据类型都可以 简单的管理, ...

  8. Orecle基本概述(2)

    1.视图1.1 视图介绍*一种虚拟的表,不是真实存在的表,以多种方式展示数据给用户看,1.2 视图使用*创建视图语法一(非只读): create or replace view 视图名字 as sql ...

  9. C# MQTT mqtt客户端,发布订阅消息

    如果想用C#来和mqtt的服务器进行数据交互的话,有一个常见的选择,那就是 MQTTNET 地址如下:https://github.com/chkr1011/MQTTnet 那个库在最近几个版本升级的 ...

  10. Bran的内核开发教程(bkerndev)-01 介绍

    介绍   内核开发不是件容易的事,这是对一个程序员编程能力的考验.开发内核其实就是开发一个能够与硬件交互和管理硬件的软件.内核也是一个操作系统的核心,是管理硬件资源的逻辑.   处理器或是CPU是内核 ...