沧县做网站资源wordpress

pingmian/2025/10/8 3:34:03/文章来源:
沧县做网站,资源wordpress,微信公众平台开发教程,鄂州门户网站[Submit][Status][Discuss]Description 请写一个程序#xff0c;要求维护一个数列#xff0c;支持以下 6 种操作#xff1a;请注意#xff0c;格式栏 中的下划线‘ _ ’表示实际输入文件中的空格Input 输入的第1 行包含两个数N 和M(M ≤20 000)#xff0c;N 表示初始时数列… [Submit][Status][Discuss] Description 请写一个程序要求维护一个数列支持以下 6 种操作 请注意格式栏 中的下划线‘ _ ’表示实际输入文件中的空格 Input 输入的第1 行包含两个数N 和M(M ≤20 000)N 表示初始时数列中数的个数M表示要进行的操作数目。第2行包含N个数字描述初始时的数列。以下M行每行一条命令格式参见问题描述中的表格。任何时刻数列中最多含有500 000个数数列中任何一个数字均在[-1 000, 1 000]内。插入的数字总数不超过4 000 000个输入文件大小不超过20MBytes。 Output 对于输入数据中的GET-SUM和MAX-SUM操作向输出文件依次打印结果每个答案数字占一行。 Sample Input 9 8 2 -6 3 5 1 -5 -3 6 3 GET-SUM 5 4 MAX-SUM INSERT 8 3 -5 7 2 DELETE 12 1 MAKE-SAME 3 3 2 REVERSE 3 6 GET-SUM 5 4 MAX-SUM Sample Output -1 10 1 10 HINT   题解Splay tree模板题 自己的板子 1 #includebits/stdc.h2 #define RI register int3 #define For(i,a,b) for (RI ia;ib;i)4 using namespace std;5 const int inf0x3f3f3f3f;6 const int N1e617;7 int n,m,rt,cnt;8 int a[N],id[N],fa[N],c[N][2];9 int sum[N],sz[N],v[N],mx[N],lx[N],rx[N];10 bool tag[N],rev[N];11 //tag表示是否有统一修改的标记rev表示是否有统一翻转的标记12 //sum表示这个点的子树中的权值和v表示这个点的权值13 //lx[]是一个子树以最左端为起点向右延伸的最大子串和,rx类似 14 //mx[]是当前子树的最大子串和15 queueint q;16 inline int read()17 {18 RI x0,f1;char chgetchar();19 while(ch0||ch9){if(ch-) f-1; chgetchar();}20 while(0chch9){x(x1)(x3)ch-0;chgetchar();}21 return x*f;22 }23 inline void pushup(RI x)24 {25 RI lc[x][0],rc[x][1];26 sum[x]sum[l]sum[r]v[x];27 sz[x]sz[l]sz[r]1;28 mx[x]max(mx[l],max(mx[r],rx[l]v[x]lx[r]));29 lx[x]max(lx[l],sum[l]v[x]lx[r]);30 rx[x]max(rx[r],sum[r]v[x]rx[l]);31 }32 //上传记录标记33 inline void pushdown(RI x)34 {35 RI lc[x][0],rc[x][1];36 if(tag[x])37 {38 rev[x]tag[x]0;//我们有了一个统一修改的标记再翻转就没有什么意义了39 if(l) tag[l]1,v[l]v[x],sum[l]v[x]*sz[l];40 if(r) tag[r]1,v[r]v[x],sum[r]v[x]*sz[r];41 if(v[x]0) 42 {43 if(l) lx[l]rx[l]mx[l]sum[l];44 if(r) lx[r]rx[r]mx[r]sum[r];45 }46 else47 {48 if(l) lx[l]rx[l]0,mx[l]v[x];49 if(r) lx[r]rx[r]0,mx[r]v[x];50 }51 }52 if(rev[x])53 {54 rev[x]0;rev[l]^1;rev[r]^1;55 swap(lx[l],rx[l]);swap(lx[r],rx[r]);56 //注意,在翻转操作中,前后缀的最大和子序列都反过来了 57 swap(c[l][0],c[l][1]);swap(c[r][0],c[r][1]);58 }59 }60 inline void rotate(RI x,RI k)61 {62 RI yfa[x],zfa[y],l(c[y][1]x),rl^1;63 if (yk)kx;else c[z][c[z][1]y]x;64 fa[c[x][r]]y;fa[y]x;fa[x]z;65 c[y][l]c[x][r];c[x][r]y;66 pushup(y);pushup(x);67 //旋转操作,一定要上传标记且顺序不能变 68 }69 inline void splay(RI x,RI k)70 {71 while(x!k)72 {73 int yfa[x],zfa[y];74 if(y!k)75 {76 if((c[z][0]y)^(c[y][0]x)) rotate(x,k);77 else rotate(y,k);78 }79 rotate(x,k);80 }81 }82 //这是整个程序的核心之一毕竟是伸展操作嘛83 inline int find(RI x,RI rk)84 {//返回当前序列第rk个数的标号 85 pushdown(x);86 RI lc[x][0],rc[x][1];87 if(sz[l]1rk) return x;88 if(sz[l]rk) return find(l,rk);89 else return find(r,rk-sz[l]-1);90 }91 inline void recycle(RI x)92 {//这就是用时间换空间的回收冗余编号机制很好理解93 RI lc[x][0],rc[x][1];94 if(l) recycle(l);95 if(r) recycle(r);96 q.push(x);97 fa[x]lrtag[x]rev[x]0;98 }99 inline int split(RI k,RI tot)//找到[k1,ktot] 100 { 101 RI xfind(rt,k),yfind(rt,ktot1); 102 splay(x,rt);splay(y,c[x][1]); 103 return c[y][0]; 104 } 105 //这个split操作是整个程序的核心之三 106 //我们通过这个split操作找到[k1,ktot]并把k,和ktot1移到根和右儿子的位置 107 //然后我们返回了这个右儿子的左儿子这就是我们需要操作的区间 108 inline void query(RI k,RI tot) 109 { 110 RI xsplit(k,tot); 111 printf(%d\n,sum[x]); 112 } 113 inline void modify(RI k,RI tot,RI val)//MAKE-SAME 114 { 115 RI xsplit(k,tot),yfa[x]; 116 v[x]val;tag[x]1;sum[x]sz[x]*val; 117 if(val0) lx[x]rx[x]mx[x]sum[x]; 118 else lx[x]rx[x]0,mx[x]val; 119 pushup(y);pushup(fa[y]); 120 //每一步的修改操作由于父子关系发生改变 121 //及记录标记发生改变我们需要及时上传记录标记 122 } 123 inline void rever(RI k,RI tot)//翻转 124 { 125 RI xsplit(k,tot),yfa[x]; 126 if(!tag[x]) 127 { 128 rev[x]^1; 129 swap(c[x][0],c[x][1]); 130 swap(lx[x],rx[x]); 131 pushup(y);pushup(fa[y]); 132 } 133 //同上 134 } 135 inline void erase(RI k,RI tot)//DELETE 136 { 137 RI xsplit(k,tot),yfa[x]; 138 recycle(x);c[y][0]0; 139 pushup(y);pushup(fa[y]); 140 //同上 141 } 142 inline void build(RI l,RI r,RI f) 143 { 144 RI mid(lr)1,nowid[mid],preid[f]; 145 if(lr) 146 { 147 mx[now]sum[now]a[l]; 148 tag[now]rev[now]0; 149 //这里这个tag和rev的清0是必要因为这个编号可能是之前冗余了 150 lx[now]rx[now]max(a[l],0); 151 sz[now]1; 152 } 153 if(lmid) build(l,mid-1,mid); 154 if(midr) build(mid1,r,mid); 155 v[now]a[mid]; fa[now]pre; 156 pushup(now); //上传记录标记 157 c[pre][midf]now; 158 //当midf时now是插入到又区间取了所以c[pre][1]now当midf时同理 159 } 160 inline void insert(RI k,RI tot) 161 { 162 for(int i1;itot;i) a[i]read(); 163 for(int i1;itot;i) 164 { 165 if(!q.empty()) id[i]q.front(),q.pop(); 166 else id[i]cnt;//利用队列中记录的冗余节点编号 167 } 168 build(1,tot,0); 169 RI zid[(1tot)1]; 170 RI xfind(rt,k1),yfind(rt,k2); 171 //首先依据中序遍历找到我们需要操作的区间的实际编号 172 splay(x,rt);splay(y,c[x][1]); 173 //把k1(注意我们已经右移了一个单位和(k1)1移到根和右儿子 174 fa[z]y;c[y][0]z; 175 //直接把需要插入的这个平衡树挂到右儿子的左儿子上去就好了 176 pushup(y);pushup(x); 177 //上传记录标记 178 } 179 //可以这么记只要用了split就要重新上传标记 180 //只有find中需要下传标记 181 int main() 182 { 183 nread(),mread(); 184 mx[0]a[1]a[n2]-inf; 185 For(i,1,n) a[i1]read(); 186 For(i,1,n2) id[i]i;//虚拟了两个节点1和n2然后把需要操作区间整体右移一个单位 187 build(1,n2,0);//建树 188 rt(n3)1;cntn2;//取最中间的为根 189 RI k,tot,val;char ch[10]; 190 while(m--) 191 { 192 scanf(%s,ch); 193 if(ch[0]!M || ch[2]!X) kread(),totread(); 194 if(ch[0]I) insert(k,tot); 195 if(ch[0]D) erase(k,tot);//DELETE 196 if(ch[0]M) 197 { 198 if(ch[2]X) printf(%d\n,mx[rt]);//MAX-SUM 199 else valread(),modify(k,tot,val);//MAKE-SAME 200 } 201 if(ch[0]R) rever(k,tot);//翻转 202 if(ch[0]G) query(k,tot);//GET-SUM 203 } 204 return 0; 205 } View Code     斌神的板子 1 /**************************************************************2 Problem: 15003 User: SongHL4 Language: C5 Result: Accepted6 Time:6152 ms7 Memory:26684 kb8 ****************************************************************/9 10 #includebits/stdc.h11 using namespace std;12 13 #define Key_value ch[ch[root][1]][0]14 const int MAXN 500010;15 const int INF 0x3f3f3f3f;16 int pre[MAXN],ch[MAXN][2],key[MAXN],size[MAXN];17 int root,tot1;18 int sum[MAXN],rev[MAXN],same[MAXN];19 int lx[MAXN],rx[MAXN],mx[MAXN];20 int s[MAXN],tot2;//内存池和容量21 int a[MAXN];22 int n,q;23 24 void NewNode(int r,int father,int k)25 {26 if(tot2) r s[tot2--];//取的时候是tot2--,存的时候就是tot227 else r tot1;28 pre[r] father;29 ch[r][0] ch[r][1] 0;30 key[r] k;31 sum[r] k;32 rev[r] same[r] 0;33 lx[r] rx[r] mx[r] k;34 size[r] 1;35 }36 void Update_Rev(int r)37 {38 if(!r)return;39 swap(ch[r][0],ch[r][1]);40 swap(lx[r],rx[r]);41 rev[r] ^ 1;42 }43 void Update_Same(int r,int v)44 {45 if(!r)return;46 key[r] v;47 sum[r] v*size[r];48 lx[r] rx[r] mx[r] max(v,v*size[r]);49 same[r] 1;50 }51 void push_up(int r)52 {53 int lson ch[r][0], rson ch[r][1];54 size[r] size[lson] size[rson] 1;55 sum[r] sum[lson] sum[rson] key[r];56 lx[r] max(lx[lson],sum[lson] key[r] max(0,lx[rson]));57 rx[r] max(rx[rson],sum[rson] key[r] max(0,rx[lson]));58 mx[r] max(0,rx[lson]) key[r] max(0,lx[rson]);59 mx[r] max(mx[r],max(mx[lson],mx[rson]));60 }61 void push_down(int r)62 {63 if(same[r])64 {65 Update_Same(ch[r][0],key[r]);66 Update_Same(ch[r][1],key[r]);67 same[r] 0;68 }69 if(rev[r])70 {71 Update_Rev(ch[r][0]);72 Update_Rev(ch[r][1]);73 rev[r] 0;74 }75 }76 void Build(int x,int l,int r,int father)77 {78 if(l r)return;79 int mid (lr)/2;80 NewNode(x,father,a[mid]);81 Build(ch[x][0],l,mid-1,x);82 Build(ch[x][1],mid1,r,x);83 push_up(x);84 }85 void Init()86 {87 root tot1 tot2 0;88 ch[root][0] ch[root][1] size[root] pre[root] 0;89 same[root] rev[root] sum[root] key[root] 0;90 lx[root] rx[root] mx[root] -INF;91 NewNode(root,0,-1);92 NewNode(ch[root][1],root,-1);93 for(int i 0;i n;i)94 scanf(%d,a[i]);95 Build(Key_value,0,n-1,ch[root][1]);96 push_up(ch[root][1]);97 push_up(root);98 }99 //旋转,0为左旋1为右旋 100 void Rotate(int x,int kind) 101 { 102 int y pre[x]; 103 push_down(y); 104 push_down(x); 105 ch[y][!kind] ch[x][kind]; 106 pre[ch[x][kind]] y; 107 if(pre[y]) 108 ch[pre[y]][ch[pre[y]][1]y] x; 109 pre[x] pre[y]; 110 ch[x][kind] y; 111 pre[y] x; 112 push_up(y); 113 } 114 //Splay调整将r结点调整到goal下面 115 void Splay(int r,int goal) 116 { 117 push_down(r); 118 while(pre[r] ! goal) 119 { 120 if(pre[pre[r]] goal) 121 { 122 push_down(pre[r]); 123 push_down(r); 124 Rotate(r,ch[pre[r]][0] r); 125 } 126 else 127 { 128 push_down(pre[pre[r]]); 129 push_down(pre[r]); 130 push_down(r); 131 int y pre[r]; 132 int kind ch[pre[y]][0]y; 133 if(ch[y][kind] r) 134 { 135 Rotate(r,!kind); 136 Rotate(r,kind); 137 } 138 else 139 { 140 Rotate(y,kind); 141 Rotate(r,kind); 142 } 143 } 144 } 145 push_up(r); 146 if(goal 0) root r; 147 } 148 int Get_kth(int r,int k) 149 { 150 push_down(r); 151 int t size[ch[r][0]] 1; 152 if(t k)return r; 153 if(t k)return Get_kth(ch[r][0],k); 154 else return Get_kth(ch[r][1],k-t); 155 } 156 157 //在第pos个数后面插入tot个数 158 void Insert(int pos,int tot) 159 { 160 for(int i 0;i tot;i)scanf(%d,a[i]); 161 Splay(Get_kth(root,pos1),0); 162 Splay(Get_kth(root,pos2),root); 163 Build(Key_value,0,tot-1,ch[root][1]); 164 push_up(ch[root][1]); 165 push_up(root); 166 } 167 168 //删除子树 169 void erase(int r) 170 { 171 if(!r)return; 172 s[tot2] r; 173 erase(ch[r][0]); 174 erase(ch[r][1]); 175 } 176 //从第pos个数开始连续删除tot个数 177 void Delete(int pos,int tot) 178 { 179 Splay(Get_kth(root,pos),0); 180 Splay(Get_kth(root,postot1),root); 181 erase(Key_value); 182 pre[Key_value] 0; 183 Key_value 0; 184 push_up(ch[root][1]); 185 push_up(root); 186 } 187 //将从第pos个数开始的连续的tot个数修改为c 188 void Make_Same(int pos,int tot,int c) 189 { 190 Splay(Get_kth(root,pos),0); 191 Splay(Get_kth(root,postot1),root); 192 Update_Same(Key_value,c); 193 push_up(ch[root][1]); 194 push_up(root); 195 } 196 197 //将第pos个数开始的连续tot个数进行反转 198 void Reverse(int pos,int tot) 199 { 200 Splay(Get_kth(root,pos),0); 201 Splay(Get_kth(root,postot1),root); 202 Update_Rev(Key_value); 203 push_up(ch[root][1]); 204 push_up(root); 205 } 206 //得到第pos个数开始的tot个数的和 207 int Get_Sum(int pos,int tot) 208 { 209 Splay(Get_kth(root,pos),0); 210 Splay(Get_kth(root,postot1),root); 211 return sum[Key_value]; 212 } 213 //得到第pos个数开始的tot个数中最大的子段和 214 int Get_MaxSum(int pos,int tot) 215 { 216 Splay(Get_kth(root,pos),0); 217 Splay(Get_kth(root,postot1),root); 218 return mx[Key_value]; 219 } 220 221 void InOrder(int r) 222 { 223 if(!r)return; 224 push_down(r); 225 InOrder(ch[r][0]); 226 printf(%d ,key[r]); 227 InOrder(ch[r][1]); 228 } 229 230 231 232 int main() 233 { 234 while(scanf(%d%d,n,q) 2) 235 { 236 Init(); 237 char op[20]; 238 int x,y,z; 239 while(q--) 240 { 241 scanf(%s,op); 242 if(strcmp(op,INSERT) 0) 243 { 244 scanf(%d%d,x,y); 245 Insert(x,y); 246 } 247 else if(strcmp(op,DELETE) 0) 248 { 249 scanf(%d%d,x,y); 250 Delete(x,y); 251 } 252 else if(strcmp(op,MAKE-SAME) 0) 253 { 254 scanf(%d%d%d,x,y,z); 255 Make_Same(x,y,z); 256 } 257 else if(strcmp(op,REVERSE) 0) 258 { 259 scanf(%d%d,x,y); 260 Reverse(x,y); 261 } 262 else if(strcmp(op,GET-SUM) 0) 263 { 264 scanf(%d%d,x,y); 265 printf(%d\n,Get_Sum(x,y)); 266 } 267 else if(strcmp(op,MAX-SUM) 0) 268 printf(%d\n,Get_MaxSum(1,size[root]-2)); 269 } 270 } 271 return 0; 272 } View Code      转载于:https://www.cnblogs.com/songorz/p/9808010.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盱眙建设局网站乐山网站建设流程

【Unity的URP渲染管线下的TAA抗锯齿】 背景:1. Unity内置的抗锯齿只能够满足部分画面需求。展示一个锯齿示例。2. 在75寸大屏电视上跑通展示一个锯齿示例。- 在Camera上配置3. 安装了一个TAA组建,最后打包APK在安卓机上运行报错。- 经过测试排查,发现是没有将后处理的shader…

外贸网站建设哪家公司好青岛市住房城乡建设局网站

本文旨在以最小的篇幅,最少的信息,介绍最高频使用的内容,从而掌握C编程开发的能力。 这种能力,只是语法层面,不涉及具体的函数库,基础库等内容。 能力准备:需要C语言基础。基本的if else, whi…

个人网站空间价格怎样提高网站权重

简介学习地址: https://meyerweb.com/eric/tools/css/reset/重置样式表的目的是减少浏览器在默认行高,标题的边距和字体大小等方面的不一致。重置样式特意是非常通用的/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126License: none (publ…

广州网站(建设信科网络)可视化编辑建站平台

1.定义结构体数组存储5个学生的信息:姓名,年龄,性别 定义函数实现输入,要求形参使用结构体指针接收 函数实现5个学生年龄排序(注意对年龄排序时,交换的是所有信息) 定义函数实现输出,要求形参使用结构体…

网站建设 三乐建站之星官网 discuz

微软开源的 云原生应用开发的框架 Dapr 发布了1.0 版本《Dapr 正式发布 1.0》,云原生应用开发更加简单容易,Dapr 的容器编排环境也是用的Kubernetes。过去几年,以 Docker、Kubernetes 为代表的容器技术已发展为一项通用技术,BAT、…

沧州北京网站建设wordpress服務器

网络的基本概念 1.协议1.1 协议的基本概念1.2 常见的协议 2.分层模型2.1网络七层OSI 7层模型:物数网传会表应(口诀)2.2TCP/IP模型2.3数据通信的过程2.4网络的设计模式2.5以太网帧的格式 3.SOCKET编程3.1网络字节序3.2 相关结构体和函数3.3 代码实现 1.协议 1.1 协议…

wordpress商店插件优化神马网站关键词排名价格

目录 1 计算机网络的拓扑结构1.1 网络拓扑的概念1.2 通信子网的信道类型1、点到点式网络2、广播式网络 1.3 常见的计算机网络拓扑结构 2 网络协议和标准化组织2.1 网络协议2.2 标准化组织 1 计算机网络的拓扑结构 1.1 网络拓扑的概念 拓扑学由图论演变而来,在拓扑…

做网站还需要买空间吗怎么修改wordpress 字体

众所周知,Google play商店在全球是极具影响力的应用市场之一,随着市场和科学技术的发展,竞争越来越激烈,谷歌的政策也越来越严格。 为了维持良好的竞争环境和用户体验,谷歌不断更新政策和规则,同时加强对部…

辽宁省建设银行网站淮南市官网

开发过程中经常会黑窗口中手动测试一下计划请求的目标ip和端口是否通畅,测试方式如下: 一、单纯测试ip是否能够 ping 通,这个比较熟悉了,运行 cmd 打开黑窗口 输入如下指令,能够如下提示信息,表示端口是通…

网站建设前需求调研表网站模板之家免费模板

目录 一、问题描述二、使用EasyExcel的版本三、场景复现四、问题修复 一、问题描述 使用EasyExcel读取文件数据时&#xff0c;出现数据无法读取情况。 二、使用EasyExcel的版本 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel&l…

网站排名提升易下拉教程网站开发网站模板设计

学生党一枚&#xff0c;前段时间跟着导师做的项目因为上面用到USB转串口芯片FT232R迟迟买不到&#xff0c;所以打算更换成国产USB转串口芯片CH340&#xff0c;对CH340的认识也很早了&#xff0c;很多年前开始直到现在各种开发板上基本都会标配一颗CH340&#xff0c;像某宝上的S…

免费做试用的网站商河县建设局网站

主要说一下冒泡排序的一些关键地方的个人理解&#xff0c;比如算法思想&#xff0c;两个循环的作用意义&#xff0c;中间循环变量范围的确定等。 原理&#xff1a;比较两个相邻的元素&#xff0c;将值大的元素交换至右端。思路&#xff1a;依次比较相邻的两个数&#xff0c;将小…

旅行社网站建设需求分析临沂网站设计

描述 在 Spring Boot 中实现状态机&#xff0c;通常使用 Spring State Machine 框架进行实现。该框架可以帮助我们定义、创建和管理复杂的状态机。 接下来给出一个demo&#xff0c;说明如何使用 Spring State Machine 框架实现状态机。 假设我们需要实现一个简单的订单状态机&a…

网站首页收录突然没有了html网站自带字体怎么做

题目&#xff1a;输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。 程序分析&#xff1a; &#xff08;1&#xff09;最小公倍数输入的两个数之积除于它们的最大公约数&#xff0c;关键是求出最大公约数&#xff1b; &#xff08;2&#xff09;求最大公约数用辗…

建设公司网站编号江都住房和建设局网站

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 预案信息管理 预案类型统计 事件类型管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍…

北京西站在几环校友网站建设

前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。 前端工程化实现技术栈 前端工程化实现的技术栈有很多,我们采用ES6nodejsnpmViteVUE3routerpiniaaxiosElement-plus组合来实现 ECMAScri…

自己做的网站视频播放不了中国上市网络公司排名

https://www.cnblogs.com/qiankun-site/p/5886673.html 1、此监听器主要用于解决java.beans.Introspector导致的内存泄漏的问题 2、此监听器应该配置在web.xml中与Spring相关监听器中的第一个位置(也要在ContextLoaderListener的前面)3、JDK中的java.beans.Introspector类的用途…

广州市公司网站建设足球比赛直播平台app

一、Mysql基本介绍 当谈论MySQL时&#xff0c;通常指的是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;。MySQL是由瑞典的开发者在1995年创建的&#xff0c;后来被Sun Microsystems收购&#xff0c;最终成为Oracle Corporation的一部分。以下是关于MySQL的…

建站成本深圳网络营销推广案例

apple mac 下使用机械键盘的办法&#xff0c;键盘映射工具软件&#xff0c;apple mac Mechanical keyboard 想在苹果电脑 mac 系统下使用 机械键盘&#xff0c;大部分机械键盘不是为mac设计的&#xff0c;所以需要用软件做一下键盘映射。 推荐使用这个&#xff1a;https://pqrs…

手机网站首页怎么做教育类网站 前置审批

#-*- coding: utf-8 -*-""" 思路 核心&#xff1a;每次落稳之后截图&#xff0c;根据截图算出棋子的坐标和下一个块顶面的中点坐标&#xff0c;根据两个点的距离乘以一个时间系数获得长按的时间识别棋子&#xff1a;靠棋子的颜色来识别位置&#xff0c;通过截图…