国庆集训做题10.1 - 10.3

news/2025/10/3 19:58:35/文章来源:https://www.cnblogs.com/Nainong2257/p/19124930

国庆集训做题

CSP-S模拟25

t1 : 爱丽丝的数位划分

题意简述 : 将序列A划分为k个不相交连续非空子序列,求最大的总优美度。

优美度指子序列中十进制表示数字不同的个数,一个方案的优美度是所有子序列优美度的和

首先很容易想到 \(n^2m\) 做法,也就是枚举上一个端点进行转移

然后注意到如果多个端点能产生相同的贡献,则端点最后的肯定更优,此时发现贡献的产生只有十种,提前预处理可以做到 \(O(n^2)\) ,多测记得清空

code:

#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long 
const int N = 2e3 + 20 ; 
int n , T , a[N] , f[N][N] , pos[N][20] , m ,b[N] ; 
signed main(){freopen("partition.in","r",stdin);freopen("partition.out","w",stdout);ios :: sync_with_stdio(false) , cin.tie(0) , cout.tie(0) ;cin >> T ; while(T--){cin >> n >> m ;string s ;  for(int i = 1 ; i <= n ;i++){cin >> s ;   for(int j = 0 ; j < s.size() ; ++j){b[i] |= (1 << (s[j] - '0' + 1));}}for(int i = 1;  i <= n ; i++){int l = b[i] ; for(int j = i ; j >= 1 ; j--){l |= b[j];int sum = __builtin_popcount(l);pos[i][sum] = max(pos[i][sum] , j); }}for(int i = 1 ; i <= n ; i++){for(int k = 1 ; k <= m ; k++){for(int j = 0 ; j <= 10 ; j++){if(pos[i][j])f[i][k] = max(f[i][k] , f[pos[i][j] - 1][k - 1] + j) ; }}}cout << f[n][m] << endl ; for(int i = 1 ; i <= n ; i++){for(int j = 1 ; j <= m ; j++){f[i][j] = 0 ; b[i] = 0 ; }for(int j = 1 ; j <= 19 ; j++)pos[i][j] = 0 ; }}return 0;
}

t2 : 爱丽丝的新运算

给出一个由无平方因子数组成的序列,求子序列能构成 : 质因子都出现过偶数次

线性基bitset维护每个序列中质数是否存在的01串,将大于 \(sqrt{n}\) 的数单独处理 , 剩下的插进线性基维护即可

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int mod = 998244353 ; 
const int N = 1e6 + 20; 
const int M = 1e6 + 20 ; 
int T , n , a[N];
int cnt , prime[N] ;
bool not_prime[N] ; 
void xxs(){for(int i = 2 ; i <= 1000010 ; i++){if(!not_prime[i]){prime[++cnt] = i ; }for(int j = 1 ; j <= cnt ; j++){if(i * prime[j] > 1000010 )break ; not_prime[i * prime[j]] = 1 ; if(i % prime[j] == 0)break ; }}
}  
int ans ; 
bitset<180>b[N];
bitset<180>d[M]; 
void insert(bitset<180>B){int flag = 0 ; for(int i = 170 ; i >= 0 ; --i){if(!(B[i]))continue ; if(d[i].count())B ^= d[i]; else{d[i] |= B ;flag = 1 ;  break ; }}if(flag == 0)ans++; 
}
int qpow(int a , int b){int res = 1 ; while(b){if(b & 1)res = res * a % mod ; a = a * a % mod ; b >>= 1 ; }return res ; 
}
int vis[N] ;
vector<int>G[N];
signed main(){freopen("calc.in","r",stdin);freopen("calc.out","w",stdout);ios :: sync_with_stdio(false) , cin.tie(0) , cout.tie(0) ; xxs() ; cin >> T ;for(int _ = 1 ; _ <= T ; _++){        cin >> n ; for(int i = 1 ; i <= n ; ++i){cin >> a[i] ;  }ans = 0 ;sort( a + 1 , a + 1 + n );  for(int i = 1 ; i <= n ; i++){if(a[i] == 1){++ans ;continue ; }int k = a[i] ; for(int j = 1 ; j <= cnt ; j++){if(j == 170)break ; if(k % prime[j] == 0){k /= prime[j] ; b[i][j] = 1 ;  }if( k == 1)break ;}if(k == 1){insert(b[i]);}else{if(vis[k]){bitset<180>B ; B = b[i] ^ b[vis[k]];insert(B);}else{vis[k] = i ; }}}for(int i = 1 ; i <= n ; i++){b[i].reset();d[i].reset();           }memset(vis , 0 ,sizeof(vis));}return 0;
}

t3 : 爱丽丝的幻方

给出n * n的一个矩阵,每个矩阵初始状态都是由左到右从上到下编号为1 - n

矩阵支持向右,向下平移操作,对角翻转,旋转,纵向翻转,横向翻转

给出操作后的矩阵,最少需要多少步

观察到1 , 2 , n + 1 三个点相对位置始终不变 , 使用bfs求值

代码太丑了...不贴了

CSP-S 模拟26

t1 : median

\(\sum\limits_{i = 1}^n\sum\limits_{j = 1}^n\sum\limits_{k = 1}^n\sum\limits_{l = 1}^n\sum\limits_{m = 1}^n med(A_i,B_j,C_k,D_l,E_m)\) \(mod\) \(998244353\)

其中\(med(a,b,c,d,e)\)\(a,b,c,d,e\)的中位数。

开题的时候吓坏了

考虑\(A,B,C,D,E\)中哪个数会成为中位数,最后看统计答案发现会重复 , 所以采取将第二元设为字母的方法,他进行排序,就不用容斥了

一个好方法就是输入\(A\)时把数组内元素\(*5\)\(B_i * 5 + 1\)以此类推避免排序

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 2e5 + 10 ;
const int mod = 998244353 ; 
int n , a[N] , a1[N] , b[N] , b1[N] , c[N] , c1[N] , d[N] , d1[N] , e[N] , e1[N] , ans ; 
signed main(){freopen("median.in","r",stdin);freopen("median.out","w",stdout);ios :: sync_with_stdio(false) , cin.tie(0) , cout.tie(0);cin >> n ; for(int i = 1 ; i <= n ; ++i)cin >> a[i] , a1[i] = (a[i] << 3) | 1 ; sort(a + 1,a + 1 + n) , sort(a1 + 1,a1 + 1 + n); for(int i = 1 ; i <= n ; ++i)cin >> b[i] ,b1[i] = (b[i] << 3) | 2  ; sort(b + 1,b + 1 + n) , sort(b1 + 1,b1 + 1 + n);for(int i = 1 ; i <= n ; ++i)cin >> c[i] , c1[i] = (c[i] << 3) | 3; sort(c + 1,c + 1 + n) , sort(c1 + 1,c1 + 1 + n); for(int i = 1 ; i <= n ; ++i)cin >> d[i] , d1[i] = (d[i] << 3) | 4 ; sort(d + 1,d + 1 + n) , sort(d1 + 1,d1 + 1 + n);for(int i = 1 ; i <= n ; ++i)cin >> e[i] , e1[i] = (e[i] << 3) | 5 ; sort(e + 1,e + 1 + n) , sort(e1 + 1,e1 + 1 + n);for(int i = 1 ; i <= 5 ; i++){for(int j = 1 ; j <= n ; j++){if(i == 1){int bx = lower_bound(b1 + 1, b1 + 1 + n , a1[j]) - b1 - 1 , by = n - bx ; int cx = lower_bound(c1 + 1, c1 + 1 + n , a1[j]) - c1 - 1 , cy = n - cx ; int dx = lower_bound(d1 + 1, d1 + 1 + n , a1[j]) - d1 - 1 , dy = n - dx ; int ex = lower_bound(e1 + 1, e1 + 1 + n , a1[j]) - e1 - 1 , ey = n - ex ; // cout << bx << " " <<cx << " " << dx << " " << ex <<endl ; ans += (bx % mod * cx % mod * dy % mod * ey % mod * a[j] % mod) % mod + (bx % mod * dx % mod * cy % mod * ey % mod * a[j] % mod) % mod + (bx % mod * ex % mod * cy % mod * dy % mod * a[j] % mod) % mod + (cx % mod * ex % mod * by % mod * dy % mod * a[j] % mod) % mod + (cx % mod * dx % mod * by % mod * ey % mod * a[j] % mod) % mod + (dx % mod * ex % mod * by % mod * cy % mod * a[j] % mod) % mod  ; ans %= mod ; }if(i == 2){int ax = lower_bound(a1 + 1, a1 + 1 + n , b1[j]) - a1 - 1, ay = n - ax ; int cx = lower_bound(c1 + 1, c1 + 1 + n , b1[j]) - c1 - 1, cy = n - cx ; int dx = lower_bound(d1 + 1, d1 + 1 + n , b1[j]) - d1 - 1, dy = n - dx ; int ex = lower_bound(e1 + 1, e1 + 1 + n , b1[j]) - e1 - 1, ey = n - ex ; // cout << ax << " " << cx << " " << dx << "  " << ex << endl ; ans += (ax % mod * cx % mod * dy % mod * ey % mod * b[j] % mod) % mod + (ax % mod * dx % mod * cy % mod * ey % mod * b[j] % mod) % mod + (ax % mod * ex % mod * cy % mod * dy % mod * b[j] % mod) % mod + (cx % mod * ex % mod * ay % mod * dy % mod * b[j] % mod) % mod + (cx % mod * dx % mod * ay % mod * ey % mod * b[j] % mod) % mod + (dx % mod * ex % mod * ay % mod * cy % mod * b[j] % mod) % mod  ; ans %= mod ;             }if(i == 3){int ax = lower_bound(a1 + 1, a1 + 1 + n , c1[j]) - a1 - 1 , ay = n - ax ; int bx = lower_bound(b1 + 1, b1 + 1 + n , c1[j]) - b1 - 1, by = n - bx ; int dx = lower_bound(d1 + 1, d1 + 1 + n , c1[j]) - d1 - 1, dy = n - dx ; int ex = lower_bound(e1 + 1, e1 + 1 + n , c1[j]) - e1 - 1, ey = n - ex ; // cout << ax << " " << bx << " " << dx << " " <<ex << endl ; ans += (ax % mod * bx % mod * dy % mod * ey % mod * c[j] % mod) % mod + (ax % mod * dx % mod * by % mod * ey % mod * c[j] % mod) % mod + (ax % mod * ex % mod * by % mod * dy % mod * c[j] % mod) % mod + (bx % mod * ex % mod * ay % mod * dy % mod * c[j] % mod) % mod + (bx % mod * dx % mod * ay % mod * ey % mod * c[j] % mod) % mod + (dx % mod * ex % mod * ay % mod * by % mod * c[j] % mod) % mod  ; ans %= mod ;             }if(i == 4){int ax = lower_bound(a1 + 1, a1 + 1 + n , d1[j]) - a1 - 1, ay = n - ax ; int bx = lower_bound(b1 + 1, b1 + 1 + n , d1[j]) - b1 - 1, by = n - bx ; int cx = lower_bound(c1 + 1, c1 + 1 + n , d1[j]) - c1 - 1, cy = n - cx ; int ex = lower_bound(e1 + 1, e1 + 1 + n , d1[j]) - e1 - 1, ey = n - ex ; // cout <<ax << " " << bx << " " << cx << " " << ex << endl ; ans += (ax % mod * bx % mod * cy % mod * ey % mod * d[j] % mod) % mod + (ax % mod * cx % mod * by % mod * ey % mod * d[j] % mod) % mod + (ax % mod * ex % mod * by % mod * cy % mod * d[j] % mod) % mod + (bx % mod * ex % mod * ay % mod * cy % mod * d[j] % mod) % mod + (bx % mod * cx % mod * ay % mod * ey % mod * d[j] % mod) % mod + (cx % mod * ex % mod * ay % mod * by % mod * d[j] % mod) % mod  ; ans %= mod ;             }if(i == 5){int ax = lower_bound(a1 + 1, a1 + 1 + n , e1[j]) - a1 - 1 , ay = n - ax ; int bx = lower_bound(b1 + 1, b1 + 1 + n , e1[j]) - b1 - 1 , by = n - bx ; int cx = lower_bound(c1 + 1, c1 + 1 + n , e1[j]) - c1 - 1 , cy = n - cx ; int dx = lower_bound(d1 + 1, d1 + 1 + n , e1[j]) - d1 - 1 , dy = n - dx ;// cout << ax << " " << bx << " " << cx << " " << dx << endl;  ans += (ax % mod * bx % mod * cy % mod * dy % mod * e[j] % mod) % mod + (ax % mod * cx % mod * by % mod * dy % mod * e[j] % mod) % mod + (ax % mod * dx % mod * by % mod * cy % mod * e[j] % mod) % mod + (bx % mod * dx % mod * ay % mod * cy % mod * e[j] % mod) % mod + (bx % mod * cx % mod * ay % mod * dy % mod * e[j] % mod) % mod + (cx % mod * dx % mod * ay % mod * by % mod * e[j] % mod) % mod  ; ans %= mod ;             }}}cout << ans << endl ; return 0;
}

t2 : travel

被SKK卡掉了,题意不清,先不管了

t3 : game

\(n\)堆石子,第\(i\)堆石子有\(a_i\)​个,\(A\)\(B\)玩游戏,\(A\)先手,每次操作可以进行以下操作 :

  1. 选定一个还有石子的石子堆,记剩下的石子为\(a_i\)​。

  2. 选定一个\(1\) \(≤\) \(x ≤ a_i\) ​,将该堆中的 \(x\)个石子移走。

  3. 选定一个\(0\) \(≤\) \(y\) \(≤\) \(ai\) \(−x\),将该堆中的\(y\)个石子以任意方式分配到剩余的非空石子堆中。

第一个不能操作者输,问\(A\)是否有必胜策略

注意到当能两两分组时,就是必败局面

同时,必胜局面可以转化到必败局面 : 把最大的拿出来给小的补上让他能两两分组,此时必败

所以只需要判断他是否能两两分组

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 20 ; 
int T , n , a[N] ; 
int main(){freopen("game.in","r",stdin);freopen("game.out","w",stdout);ios :: sync_with_stdio(false) , cin.tie(0) , cout.tie(0) ;  cin >> T ; while(T--){cin >> n ; for(int i = 1 ; i <= n ;++i)cin >> a[i] ; sort(a + 1, a + 1 + n);int f = 0 ; for(int i = n ; i >= 1 ; i--){if(a[i] != a[i - 1]){if((n - i + 1) & 1){f = 1 ; }}}if(!f)cout << "No" << endl; else cout << "Yes" << endl ; }return 0; 
}

2025多校CSP模拟赛1

t1 : Acowdemia

水题
直接判断是否有

GC

CG

即可

// ubsan: undefined
// accoders
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 20;
int mp[N][N], bj[N][N], cnt1[N][N];
int dx[4] = { 1, 0, -1, 0 };
int dy[4] = { 0, 1, 0, -1 };
int n, m, ans;
int main() {ios ::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> n >> m;string s;for (int i = 1; i <= n; ++i) {cin >> s;for (int j = 0; j < m; ++j) {if (s[j] == 'C')mp[i][j + 1] = 1;if (s[j] == 'G')mp[i][j + 1] = 2;if (s[j] == 'G')++ans;if (s[j] == '.')mp[i][j + 1] = 3;}}for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {if (mp[i][j] == 2) {int cnt = 0;for (int d = 0; d < 4; ++d) {int x = i + dx[d], y = j + dy[d];if (x < 1 or x > n or j < 1 or j > m)continue;if (mp[x][y] == 1)++cnt;}cnt1[i][j] = cnt;int f = 0;if (cnt < 2) {ans--;continue;} else {if (bj[i][j])continue;else {if (cnt == 2) {if (i > 1 and i <= n and j >= 1 and j < m) {if (mp[i - 1][j] == 1 and mp[i][j + 1] == 1 and mp[i - 1][j + 1] == 2 andcnt1[i - 1][j + 1] == 2) {f = 1;bj[i - 1][j + 1] = 1;}}if (i > 1 and i <= n and j > 1 and j <= m) {if (mp[i - 1][j] == 1 and mp[i][j - 1] == 1 and mp[i - 1][j - 1] == 2 andcnt1[i - 1][j - 1] == 2) {f = 1;bj[i - 1][j + 1] = 1;}}if (i >= 1 and i < n and j > 1 and j <= m) {if (mp[i][j - 1] == 1 and mp[i + 1][j] == 1 and mp[i + 1][j - 1] == 2 andcnt1[i + 1][j - 1] == 2) {f = 1;bj[i - 1][j + 1] = 1;}}if (i >= 1 and i < n and j >= 1 and j < m) {if (mp[i + 1][j] == 1 and mp[i][j + 1] == 1 and mp[i + 1][j + 1] == 2 andcnt1[i + 1][j + 1] == 2) {f = 1;bj[i + 1][j + 1] = 1;}}} else {continue;}}}if (f == 1)ans--;}}}cout << ans << endl;return 0;
}

t2 : Transmutation

越做越像网络流,可惜不是

每次二分能制多少Pb

对于不够的情况,递归下去看看后面的能不能填上,如果能,就可以,否则就不行

对于有环的情况 :如果一个点被经过n次那么就一定不行

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1010 ;
int a[N] , c[N] , n , vis[N];
struct Pb{int x , y;
}b[N];
bool dfs(int k,int tp){if(a[tp] >= k ){a[tp] -= k;return 1;}if(++vis[tp] > n)return 0;k -= a[tp];a[tp] = 0;bool flag = dfs(k , b[tp].x);if(flag == 0)return 0;flag = dfs(k , b[tp].y);if(!flag)return 0;else return 1;
}
bool check(int k){for(int i = 1 ; i <= n ;i++)c[i] = a[i] , vis[i]=0 ; bool ans = dfs(k , 1);for(int i = 1 ; i <= n ;i++)a[i] = c[i] ; return ans;
}
int T , to;
signed main(){cin >> T ; while(T--){cin >> n ; for(int i = 1 ;i <= n;i++){cin >> b[i].x >> b[i].y ; }int sum = 0;for(int i = 1;i <= n;i++){cin >> a[i] , sum += a[i];}int l = a[1] , r = sum + 91 ;int ans = 0;while(l <= r){int mid = (l + r) / 2;if(check(mid)){ans = mid;l = mid + 1;}else{r = mid - 1;}}printf("Case #%lld: %lld\n",++to,ans);for(int i = 1 ; i <= n ; i++){b[i].x = b[i].y = a[i] = 0;} }return 0;
}

t3 : Magneti

这里用了一个trick:预设型DP

首先把磁铁紧贴一起,剩下的插板法处理

按照升序排序,之后就不用处理贡献了

\(f_{i,j,k}\) 表示前i个磁铁分j个连通块,用了k个空位的方案数

转移有:

插后面 \(f_{i,j,k}\) \(=\) \(f_{i−1,j−1,k−1}\)

插之前连通块的两端, \(f_{i,j,k}\) \(=\) \(2\) \(×\) \(f_{i−1,j,k}\) \(−len(i)×j\)

并两个连通块 \(f_{i,j,k}\) \(=\) \(f_{i−1,j+1,k}\) \(−2len(i)+1×(j+1)×j\)

答案是 \(\sum\ i≥1\) \(f_{n,1,i}\) \(×(m−i+n)\)

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

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

相关文章

免费申请网站空间网站转化率分析工具

Java线程6种状态和工作原理详解&#xff0c;Java创建线程的4种方式 目录 一、Java线程的六种状态 二、Java线程是如何工作的&#xff1f; 三、BLOCKED 和 WAITING 的区别 四、start() 和 run() 源码分析 五、Java创建线程的所有方式和代码详解 1. 继承Thread类 2. 实现…

政务公开网站建设情况从哪里下载wordpress

以前安装这个软件的时候&#xff0c; 是在windows和mac上&#xff0c;都是图形化的安装方式&#xff0c;但是ubuntu不太一样&#xff0c;需要增加源&#xff0c;然后执行命令。安装的系统版本是2004。 参考链接1&#xff0c;主要命令包含下面几个部分&#xff1a; 第一步&…

XCSY暑期集训模拟赛2T3善良

XCSY暑期集训模拟赛2T3善良暴力(50pts) 对于每个询问,遍历\([l,r]\),统计其中k的数量,时间复杂度为\(O(nm)\)。 for(int i=1;i<=n;i++) cin>>a[i]; while(m--){cin>>l>>r>>k;int ans=0;…

玳瑁的嵌入式日记---0928(ARM--UART) - 指南

玳瑁的嵌入式日记---0928(ARM--UART) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

网站开发需要那些技能电子商务平台中搜索词拆解时

产生原因:因为项目最近设计到了一个Quartz相关的模块&#xff0c;前端需要传递时间参数到后台, 然后后台设置一个新的定时任务, 所以后台需要一个可以实现Date与cron之间的相互转换(因为Quartz需要的Cron格式的数据)&#xff0c;所以就借助java的SimpleDateFormat的格式化,然后…

解决Visual Studio中无法使用scanf和C++万能头的问题

解决Visual Studio中无法使用scanf和C++万能头的问题Visual Studio中无法使用scanf和C++万能头? 来吧,跟我一起操作! 1.在桌面上创建万能头文件, 并命名为stdc++.h: 记得把文件后缀名给打开哟! 2.用记事本打开std…

太仓专业网站建设我想创个网站

目录 项目背景 项目技术栈 项目介绍 项目亮点 项目启动 1.创建SSM&#xff08;省略&#xff09; 2.配置项目信息 3.将前端页面加入到项目中 4.初始化数据库 5.创建标准分层的目录 6.创建和编写项目中的公共代码以及常用配置 7.创建和编写业务的Entity、Mapper、…

网页站点不安全静海网站开发

虚拟机是软件 对于第一次听说虚拟机&#xff08;Virtual Machine&#xff0c;VM&#xff09;的人来说&#xff0c;可能以为还要再花钱买一台计算机&#xff0c;这恐怕是他们最担心的。所谓虚拟机&#xff0c;就是在你的计算机上再虚拟出另一台计算机来。这台虚拟出来的计算机&…

技术培训学校机构做360手机网站优化

1.1. Socket简介 套接字&#xff08;socket&#xff09;是一种通信机制&#xff0c;凭借这种机制&#xff0c; 客户端<->服务器 模型的通信方式既可以在本地设备上进行&#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思&#xff0c;在网络编程…

北京正规制作网站公司网页无法访问qq可以登陆

默认情况下&#xff0c;所有的新邮箱数据都是启用Exchange搜索&#xff0c;仅当多个邮箱迁移到该Exchange Server时&#xff0c;才禁用搜索索引。 获取数据库的Exchange搜索索引 使用Get-MailboxDatabase 来获取数据库的搜索索引 Get-MailboxDatabase | Select-Object Name,…

做爰全过程免费网站的视频教程网站资讯创作

本文将介绍以下内容&#xff1a; • 面向对象基本概念 • 类和结构体简介 • 引用类型和值类型区别 1. 引言 提起class和struct&#xff0c;我们首先的感觉是语法几乎相同&#xff0c;待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程&#xff0c;class和stru…

学校网站管理与建设办法怎样建立自己购物网站

主流开发语言 Java 简介&#xff1a;Java 是一种广泛使用的面向对象的编程语言&#xff0c;由Sun Microsystems公司于1995年发布&#xff0c;后由Oracle公司接手。Java具有“一次编写&#xff0c;到处运行”的特性&#xff0c;它的跨平台能力得益于Java虚拟机&#xff08;JVM&a…

东莞网站设计公司排名企业网站建设感想

在 Oracle 数据库中&#xff0c;你可以使用 ALTER TABLE 语句来添加字段&#xff0c;并使用 COMMENT ON COLUMN 语句来添加字段注释。以下是一个示例&#xff1a; 假设你有一个名为 employees 的表&#xff0c;你想要添加一个名为 email 的字段&#xff0c;并为其添加注释。 …

最新企业网站开发和设计软件个人域名可以做公司网站么

简介&#xff1a; 淘宝搜索推荐、视频搜索的背后使用了什么样的检索技术&#xff1f;非结构化数据检索&#xff0c;向量检索&#xff0c;以及多模态检索&#xff0c;它们到底解决了什么问题&#xff1f;今天由阿里巴巴达摩院的科学家从业务问题出发&#xff0c;抽丝剥茧&#x…

前端如何优雅地生成唯一标识?——一份跨环境 UUID 设备函数的封装与实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

广州网站建设外包公司网站建设情况自查报告

1、syntax"proto3":表明使用的是proto3格式&#xff0c;如果不指定则为proto22、package test:定义包名为test&#xff0c;生成类时&#xff0c;会产生一个目录为test3、message Person:消息主体内容&#xff0c;里面为各个字段的定义二、生成对应的PHP类定义好Perso…

解码红黑树

红黑树全面解析:从设计逻辑到代码落地 红黑树是自平衡二叉搜索树(Self-Balanced BST) 的经典实现,核心解决了普通 BST 失衡、AVL 树过度平衡的问题。它通过 “颜色约束” 实现 “大致平衡”,兼顾查找性能与插入 /…

苹果首款折叠屏iPhone全爆料汇总:明年9月发布、1.3万元起步

苹果首款折叠屏iPhone全爆料汇总:明年9月发布、1.3万元起步Posted on 2025-10-03 19:30 lzhdim 阅读(0) 评论(0) 收藏 举报从多方权威爆料基本可以确定,苹果将会在明年9月发布首款可折叠iPhone,与iPhone 18 Pr…

英文笔记

column 列 float 浮动 margin 边距 font 字体 border 边框 radius 圆角 background 背景 color 颜色 padding 填充

苹果最强平板!M5版iPad Pro开箱上手提前泄露:升级12GB内存 GPU性能大涨

苹果最强平板!M5版iPad Pro开箱上手提前泄露:升级12GB内存 GPU性能大涨Posted on 2025-10-03 19:30 lzhdim 阅读(0) 评论(0) 收藏 举报日前,俄罗斯博主Wylsacom提前发布M5芯片版iPad Pro开箱视频,甚至还在Gee…