24.5.12(23广东,19陕西)(字典树)

星期一:

dp题单 区间dp第三题  二叉搜索树                            cf传送门

思路:dp【i】【j】【0/1】表示区间 i到 j,以 i / j为根节点能否形成一棵二叉搜索树

因为题目要求组成二叉搜索树,若 i 到 j 的节点为一颗完整的子树时有合法的构造方案,那么其根节点一定为 i-1 或 j+1,所以转移时先枚举区间 l r,再枚举区间内的点 k,若以 k 为根( l 到k-1为其左子树,k+1到 r为其右子树)有合法的构造方案,且 k与 l-1 或 r+1的gcd合法,则 l-1 到 r 或 l 到 r+1存在合法构造

代码如下:

ll n;
int a[770];
int dp[770][770][2];
bool gc[770][770];
void solve(){cin >> n;for(int i=1;i<=n;i++) cin >> a[i];for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)gc[i][j]=(__gcd(a[i],a[j])!=1);            //预处理}for(int i=1;i<=n;i++) dp[i][i][0]=dp[i][i][1]=1;for(int len=1;len<=n;len++){for(int l=1;l+len-1<=n;l++){int r=l+len-1;for(int k=l;k<=r;k++){if(dp[l][k][1] && dp[k][r][0]){if(gc[l-1][k]) dp[l-1][r][0]=1;if(gc[k][r+1]) dp[l][r+1][1]=1;}}}}for(int i=1;i<=n;i++){if(dp[1][i][1] && dp[i][n][0]){cout << "Yes"; return ;}}cout << "No";
}

dp题单 区间dp 第四题 分三角形                               cf传送门

初见低级贪心题,再一细看,嗯?区间dp好题!

正解(不解释:

ll n;
void solve(){cin >> n;ll ans=0;for(int i=2;i<n;i++) ans+=i*(i+1);cout << ans;
}

而如果题目给多边形的每个点赋上权值,贪心可能就会失效,只能用下面的区间dp

思路:dp【i】【j】表示考虑 i 到 j区间最低权值

长度从3开始枚举,假设已知 i 到 k区间和 j 到 k区间的最低价值,i 到 j区间的最低价值即可能为  dp[ i ][ k ]+dp[ k ][ j ]+i*j*k,相当于 在 i,j 间连条边,形成端点为 i,j,k的三角形

代码如下:

ll n;
ll dp[550][550];
void solve(){cin >> n;for(int i=1;i<=n;i++)for(int j=i+2;j<=n;j++) dp[i][j]=1e18;      //初始化记得j从i+2开始for(int len=3;len<=n;len++){for(int l=1;l+len-1<=n;l++){int r=l+len-1;for(int k=l+1;k<r;k++)dp[l][r]=min(dp[l][k]+dp[k][r]+l*r*k,dp[l][r]);}}cout << dp[1][n];
}

星期二:

dp题单 背包 第五题           军队排列                     cf传送门

题意:n1个步兵,n2个骑兵,步兵不能连续站超过k1个,骑兵不能连续超过k2个,问排列方案数

思路:dp【i】【j】【k】【0/1】表示已经站了 i个步兵,j个骑兵,尾部是连续 k个步/骑的方案数,转移如下

代码如下:

const int mod=1e8;
ll n;
ll n1,n2,k1,k2;
ll dp[110][110][11][2];
void solve(){cin >> n1 >> n2 >> k1 >> k2;dp[1][0][1][0]=1,dp[0][1][1][1]=1;for(int i=0;i<=n1;i++){for(int j=0;j<=n2;j++){if(i>0){for(int k=2;k<=k1;k++)dp[i][j][k][0]=dp[i-1][j][k-1][0];  //步兵后跟步兵for(int k=1;k<=k2;k++)dp[i][j][1][0]+=dp[i-1][j][k][1],dp[i][j][1][0]%=mod; //骑兵之后放步兵}if(j>0){for(int k=2;k<=k2;k++)dp[i][j][k][1]=dp[i][j-1][k-1][1];  //骑兵后跟骑兵for(int k=1;k<=k1;k++)dp[i][j][1][1]+=dp[i][j-1][k][0],dp[i][j][1][1]%=mod; //步兵后跟骑兵}}}ll ans=0;for(int k=1;k<=k1;k++) ans+=dp[n1][n2][k][0],ans%=mod;for(int k=1;k<=k2;k++) ans+=dp[n1][n2][k][1],ans%=mod;cout << ans;
}

下午队内赛

补队内赛E                                                           cf传送门

思路:没看出来是分类讨论,6是特判-1

首先如果 x是奇数,将其分为x/2,x/2+1,一定满足互质且差最小,为1

x为偶数,若x/2为偶数,可分为x/2+1和x/2-1,差为2,而若x/2为奇数,可考虑分为x/2+2和x/2-2,但可能还有比4更好的分法

若x是3的倍数,能将其分为x/3-1,x/3,x/3+1的形式,为奇偶奇,差为2

若x%3==1,分为x/3-1,x/3,x/3+2,偶奇奇,差为3,注意特判若x/3-1为3的倍数,则不能这样分

若x%3==2,分为x/3-1,x/3+1,x/3+2,奇奇偶,差为3,同上,注意特判

代码如下:

void solve(){int tt; cin >> tt;for(int ii=1;ii<=tt;ii++){int x; cin >> x;cout << "Case #" << ii << ": ";if(x==6){cout << "-1\n"; continue;}if(x&1){cout << "1\n"; continue;}if((x/2-1)&1) cout << "2\n";else{if(x%3==0) cout << "2\n";else{if(x%3==1){if((x/3-1)%3==0) cout << "4\n";else cout << "3\n";}else{if((x/3-1)%3==0) cout << "4\n";else cout << "3\n";}}}}
}

星期三:

上午和队友vp了把23广东省赛,时间关系只打了4h,5题500罚时

记录 I 题                                                                cf传送门

思路:涉及一点 stl 操作,还有multiset是个不错的容器,可以存放pair,再扩展下可以存结构体,在结构体里重写排序运算符,即可实现自定义的二分查找

代码如下:

ll n;
int m;
void solve(){cin >> n >> m;unordered_map<int,PII>mp;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){int x; cin >> x;mp[x]={i,j};              //存放每个点的坐标}}multiset<PII>mt;mt.insert({1,1}),mt.insert({n,m});mt.insert({0,0});                        //防止查找第一行的坐标时,pit会成为野指针for(int i=0;i<=n*m-1;i++){int x=mp[i].first,y=mp[i].second;auto it=mt.lower_bound({x,y});auto pit=prev(it);int y11=pit->second;int y2=it->second;if(y>=y11 && y<=y2) mt.insert({x,y});  //判断是否在可走范围内else{cout << i << "\n"; return ;}}cout << n*m << "\n";
}

K因为os忘记多个样例清空数组,耽误了1h且惨遭3发罚时(警钟长鸣!!!

补星期二队内赛 F                                               cf传送门

思路:4e4内的回文数很少,先全算出来,dp【x】表示组成 x的方案数,用完全背包写法

刚开始想了很久没想明白是如何进行转移的,为何可以这样转移

dp【i】【j】代表用前 i个回文数组成 j的方案数

转移方程为dp【i】【j】=dp【i-1】【j】+dp【i】【j-a [ i ]】,后俩表示用前 i-1个回文数组成 j的方案数 加上 用至少1个a【i】组成 j的方案数,再滚动一下

代码如下:

void solve(){vector<int>a;vector<ll>dp(4e4+1);for(int i=1;i<=4e4;i++){string s=to_string(i);string ss=s; reverse(ss.begin(),ss.end());if(s==ss) a.push_back(i);}dp[0]=1;for(auto i:a){for(int j=i;j<=4e4;j++) dp[j]+=dp[j-i],dp[j]%=mod;}int t; cin >> t;while(t--){int x; cin >> x;cout << dp[x] << "\n";}
}

补cf round943 div3 E                                                 cf传送门

思路:能想到在 n>=4 时曼哈顿距离能拿满,那么怎么拿呢

在主对角线放n-2个,剩下两个一个放 n-1,n,一个放 n,n,前者负责奇数曼哈顿距离,后者偶数(这也能扯到奇偶性?

代码如下:

void solve(){cin >> n;for(int i=1;i<=n-2;i++) cout << i << " " << i << "\n";cout << n-1 << " " << n << "\n" << n << " " << n << "\n";
}

补ATC abc352 D                                                 atc传送门

不知道为什么每次abc的D补着都觉得不难,但赛时就是出不了

思路:p[ i ]储存 i这个数的下标, 一个长度为 k滑动窗口不断求区间内最小值和最大值之差即可, multiset实现

代码如下:

ll n;
void solve(){int k; cin >> n >> k;vector<int>p(n+1);for(int i=1;i<=n;i++){int x; cin >> x;p[x]=i;}int ans=1e9;multiset<int>mt;for(int i=1;i<k;i++) mt.insert(p[i]);for(int i=k;i<=n;i++){mt.insert(p[i]);if(i>k) mt.erase(p[i-k]);ans=min(*prev(mt.end())-*mt.begin(),ans);}cout << ans;
}

星期四:

补23广东 B                                                          cf传送门

B - 基站建设 - SUA Wiki

思路:双指针预处理,然后用优先队列优化dp,dp【i】表示考虑到 i点且 i点建了基站的最小花费

优先队列优化不难,问题是怎么预处理出需要的信息,p【i】表示 [ p【i】,i ]间没有完整区间,因为p【i】满足单调不递减,可以用双指针求出

对于点 i来说,他能转移的点需要满足此条件,即下标需 >=p【i-1】-1(p【i-1】-1到 i-1 是一段区间所以p【i-1】-1 到 i-1 至少要建一个点

代码如下:

const int N=2e6+10,M=210;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+7;
ll n;
ll a[N];
int p[N];
vector<int>e[N];
ll dp[N];
void solve(){cin >> n;for(int i=1;i<=n;i++) cin >> a[i],e[i].clear();a[++n]=0;                                   //使n+1且a[n+1]=0,答案就能直接取dp[n]int m; cin >> m;while(m--){int l,r; cin >> l >> r;e[l].push_back(r);e[r].push_back(-1*l);}for(int i=1,j=1,cnt=0;i<=n;i++){for(int x:e[i]) if(x<0 && -1*x>=j) cnt++;  //i经过右端点且其左端点>=j,则j-i的区间数+1while(cnt>0 && j<=i){for(int x:e[j]) if(x>0 && x<=i) cnt--; //j经过左端点且其右端点<=i,则区间数-1j++;}p[i]=j;}priority_queue<PII,vector<PII>,greater<PII>>pq;dp[1]=a[1],dp[0]=0;pq.push({dp[1],1}),pq.push({dp[0],0});for(int i=2;i<=n;i++){while(pq.top().second<p[i-1]-1) pq.pop();dp[i]=pq.top().first+a[i];pq.push({dp[i],i});}cout << dp[n] << "\n";
}

补cf round943  F(异或,附特定值下标二分          cf传送门

思路:分析异或性质可得出分块只需考虑 k=2和k=3的分法

处理出异或前缀和, 若 k==2, 则存在一点 x ,分为[ l,x ]和[ x+1,r ] 即 b[x]^b[l-1]==b[r]^b[x], 只需判断 b[l-1]是否等于 b[r]即可

若k==3, 则存在两点 s,t 分为[ l,s ], [ s+1,t ], [ t+1,r ]三个区间 ,即 b[l-1]^b[s]==b[s]^b[t]==b[t]^b[r] ,即b[s]==b[r]且b[t]==b[l-1] (s<t), 则可找出下标[ l,r ]内最接近 l的值为 b[r]的数的下标,和最接近 r的值为b[l-1]的数的下标, 可以预先把一个数出现的所有下标存进 vector里实现二分查找,最后判断 (s<t)

代码如下:

const int N=2e6+10,M=210;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+7;
ll n;
int a[N];
void solve(){int q; cin >> n >> q;map<int,vector<int>>p;p[0].push_back(0);              //先塞0下标,vector里不会自动排序for(int i=1;i<=n;i++){cin >> a[i];a[i]^=a[i-1];p[a[i]].push_back(i);}while(q--){int l,r; cin >> l >> r;if(a[l-1]==a[r]){cout << "Yes\n"; continue;}int p1=*lower_bound(p[a[r]].begin(),p[a[r]].end(),l);int p2=*--lower_bound(p[a[l-1]].begin(),p[a[l-1]].end(),r);if(p1<p2) cout << "Yes\n";else cout << "No\n";}cout << "\n";
}

星期五:晚上vp 19年陕西省赛,坐了一晚上牢,晕晕

星期六:

补23广东 E 字典树                                                cf传送门

思路:新的字典树题,sum【i】表示以 i 为根的子树上有多少个字符串。字典树以1为根,后面的一些操作会更方便

在字典树上贪心地搜索答案,首先假设现在在根节点1上,lcp为空,那所有子节点上只能选择一个字符串,然后判断数量是否满足 >=k,若满足则结束搜索

若不满足,则需选择更多的字符串,从 a 到 z遍历子节点,判断答案下一位是否能为此字母,需满足 sum[ ch[ now ][ i ]] + 字典序<=该串的所有字符串数量 + 字典序>该串的子节点各选一个 >= k

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
int k;
int ch[N][30],idx,cnt[N];
ll sum[N];
void add(string s){int p=1;sum[p]++;for(int i=0,sz=s.size();i<sz;i++){int c=s[i]-'a'+1;if(!ch[p][c]) ch[p][c]=++idx;p=ch[p][c];sum[p]++;}cnt[p]++;
}
void clr(){                                  //清空字典树for(int i=0;i<=idx;i++){for(int j=1;j<=26;j++) ch[i][j]=0;cnt[i]=sum[i]=0;}
}
void solve(){cin >> n >> k;idx=1;for(int i=1;i<=n;i++){string s; cin >> s;add(s);}int now=1;   //表示当前节点while(1){//判断以now结尾能选的字符串数够不够int t=cnt[now];for(int i=1;i<=26;i++) if(sum[ch[now][i]]) t++;  //子节点的字符串只能选一个if(t>=k){if(now==1) cout << "EMPTY";cout << "\n"; clr();return ;}//判断接下来now该去哪个节点for(int i=1;i<=26;i++) if(sum[ch[now][i]]){t+=sum[ch[now][i]],t--;     //判断加上ch[now][i]里所有字符串够不够if(t>=k){                   //如果够就进入该子节点cout << char('a'+i-1);now=ch[now][i];k=k-t+sum[ch[now][i]];  //k减去t但要先还回sum[ch[now][i]]break;}}}
}

补 19陕西 B                                                        cf传送门

题意:一言以蔽之,欧拉图

思路:欧拉图的做法,从入度的角度入手

若整个图不是一条循环的线,则起点入度为0,那么找一个入度为0的点模拟即可

若整个图就是一个循环,则所有点都可以是起点,从1,1开始模拟即可

然后判断是否所有点都被遍历

代码如下:

ll n;
int m;
vector<vector<int>>ve;
vector<vector<char>>ch;
vector<vector<bool>>vi;
vector<vector<bool>>in;
bool checkout(int x,int y){int dis=ve[x][y];if(ch[x][y]=='u' && x-dis<1) return 1;if(ch[x][y]=='d' && x+dis>n) return 1;if(ch[x][y]=='l' && y-dis<1) return 1;if(ch[x][y]=='r' && y+dis>m) return 1;return 0;
}
void dfs(int x,int y){vi[x][y]=1;if(checkout(x,y)) return ;int dis=ve[x][y];if(ch[x][y]=='u' && !vi[x-dis][y]) dfs(x-dis,y);if(ch[x][y]=='d' && !vi[x+dis][y]) dfs(x+dis,y);if(ch[x][y]=='l' && !vi[x][y-dis]) dfs(x,y-dis);if(ch[x][y]=='r' && !vi[x][y+dis]) dfs(x,y+dis);
}
void solve(){cin >> n >> m;ve=vector<vector<int>>(n+10,vector<int>(m+10));ch=vector<vector<char>>(n+10,vector<char>(m+10));vi=vector<vector<bool>>(n+10,vector<bool>(m+10,0));in=vector<vector<bool>>(n+10,vector<bool>(m+10,0));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) cin >> ch[i][j];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin >> ve[i][j];if(checkout(i,j)) continue;int dis=ve[i][j];if(ch[i][j]=='u') in[i-dis][j]=1;if(ch[i][j]=='d') in[i+dis][j]=1;if(ch[i][j]=='l') in[i][j-dis]=1;if(ch[i][j]=='r') in[i][j+dis]=1;}}bool if1=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)if(!in[i][j]){dfs(i,j),if1=1; break;}if(if1) break;}if(!if1) dfs(1,1);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)if(!vi[i][j]){cout << "No\n"; return ;}}cout << "Yes\n";
}

周日:

补19陕西  J 位运算贪心                                           cf传送门

题意:给n个区间,每个区间中选一个数,使得所有数按位与的结果最大,输出最大结果

思路:按位贪心,从高到低,对于第 i位,检查所有区间是否都存在数在此位为1,若都存在则对所有区间进行缩小操作( 也可能不变,若不存在则continue

对于如何判断一区间含有第 i位为1的数,使用位运算实现,若l【i】第 i位为 1直接返回真,否则使 l【i】第 i位为1,更低位全变为0,判断其是否小于等于 r【i】

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
ll l[N],r[N];
int fnd(int x,int i){if(!(x>>i&1)) x=((x>>i)|1)<<i;          //第i位或上1,低位全变为0return x;
}
void solve(){cin >> n;for(int i=1;i<=n;i++) cin >> l[i] >> r[i];ll ans=0;for(int i=30;i>=0;i--){bool if1=1;for(int j=1;j<=n;j++){if(l[j]>>i&1) continue;int nl=fnd(l[j],i);if(nl>r[j]){if1=0; break;}}if(!if1) continue;ans+=1ll<<i;for(int j=1;j<=n;j++){if(l[j]>>i&1) continue;l[j]=fnd(l[j],i);}}cout << ans << "\n";
}

补ABC 353 D                                                       atc传送门

日常卡D然后补题又觉得不难

思路:做一个位数的前缀和,就能计算出一个数作为前缀的总贡献

代码如下:

const int N=2e6+10,M=210;
const int mod=998244353;
ll n;
int a[N];
int sum[N][11];
ll qpow(int a,int n){if(n==0) return 1;if(n==1) return a;ll s=qpow(a,n/2);s=s*s%mod;if(n&1) s=s*a%mod;return s;
}
void solve(){cin >> n;for(int i=1;i<=n;i++){cin >> a[i];string s=to_string(a[i]);for(int j=1;j<11;j++) sum[i][j]=sum[i-1][j];sum[i][s.size()]++;}ll ans=0;for(int i=1;i<=n;i++){for(int j=1;j<11;j++)ans+=(1ll*a[i]*qpow(10,j)%mod)*(sum[n][j]-sum[i][j])%mod;//前缀贡献ans+=1ll*a[i]*(i-1),ans%=mod;        //后缀贡献可直接算出}cout << ans;
}

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

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

相关文章

等保2.0的全面解读与实施策略

《网络安全等级保护基本要求》&#xff08;等保2.0&#xff09;是中华人民共和国国家安全部于2019年6月发布的网络安全等级保护标准。该标准规定了我国关键信息基础设施的网络安全等级保护要求和评估标准&#xff0c;对于保障我国网络安全具有重要的意义。下面是对等保2.0的全面…

Scratch四级:第09讲 搜索算法

第09讲 搜索算法 教练:老马的程序人生 微信:ProgrammingAssistant 博客:https://lsgogroup.blog.csdn.net/ 讲课目录 常考的搜索算法项目制作:“小猫钓鱼”项目制作:“统计身高”项目制作:“找出出现次数最多的数字”搜索算法 搜索算法常用于列表的题目中,包括: (1)…

LabVIEW开发RS422通信

LabVIEW开发RS422通信 项目围绕LabVIEW软件开发的程序在RS422通信技术检测方面的应用进行展开&#xff0c;通过软件编程将上位计算机虚拟化为检测设备&#xff0c;控制其通信端口与被测产品进行RS422通信&#xff0c;以此检验产品的性能优劣。该虚拟检测仪器在实际测试中表现出…

c++红黑树的模拟实现

目录 1. 红黑树的概念 ​编辑 2. 红黑树的性质 3. 红黑树的模拟实现 3.1 红黑树节点的定义 3.2 红黑树的插入 旋转代码 插入主逻辑代码 验证是否平衡 4. 红黑树与AVL树的比较 1. 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一…

嵌入式中STM32上模拟启动Linux自动初始化

Linux中有很多编程思想可以学习,很多大佬把这些思想、机制运用到单片机的编程上。 下文,在STM32上模拟Linux kernel自动初始化流程。 通常我们写程序都是按照这个套路,一个函数一个函数按照顺序逻辑一个一个的执行下去。 如果逻辑非常复杂,涉及的模块比较多,那么这种顺…

Quests system for Unity

一个简单而灵活的任务系统将帮助你实现所有的想法,而不需要事件和逻辑中的一堆额外代码! 我的资产是一个用于执行任务的独立系统。 特征: 任务逻辑不需要继承MonoBehaviour。 在一行中完成所需任务的激活/进度/完成。 易于理解的界面,包含项目中所有任务的列表。 不需要连接…

解锁!智能代码助手 Baidu Comate 硬核能力

近日&#xff0c;在全球软件开发大会上暨智能软件开发生态展上&#xff0c;来自 Baidu Comate 的资深研发工程师分享了精彩的专题演讲&#xff0c;小编整理了演讲精华&#xff0c;和大家一起玩转“大模型软件研发”。 今天带来——吴玮琦《智能代码助手 Baidu Comate 的核心能…

【Python时序预测系列】灰狼算法(GWO)优化LSTM实现单变量时间序列预测(案例+源码)

这是我的第279篇原创文章。 一、引言 灰狼算法&#xff08;GWO&#xff09;是一种新型的优化算法&#xff0c;灵感来源于灰狼群体中的社会行为。在灰狼算法中&#xff0c;每只灰狼都有自己的位置和适应度值&#xff0c;通过模拟灰狼群体的行为来搜索最优解。将灰狼算法应用于优…

支持不同业务模式与安全要求的跨网传输解决方案,了解一下

对于科技研发型企业来说&#xff0c;最值钱的是研发代码这类数据资产。因此很多企业会想将这些数据“困”在内部&#xff0c;防止数据泄露。最常见的做法是通过防火墙、DMZ区、双网卡主机、虚拟机、网闸/光闸等隔离方式&#xff0c;将网络划分为企业内外网&#xff0c;较为常见…

职校智慧校园现状及问题解决

近年来&#xff0c;智慧校园已经可以满足学校日常办公的需要&#xff0c;但是还是存在缺乏整体规划、缺乏统一技术标准、原有应用陈旧、多重身份和密码体系、业务系统的开发和维护模式不统一、现有应用重管理轻服务现象严重、数据资产利用不足等问题。 职校智慧校园现状及问题分…

Redis详解(二)

事务 什么是事务&#xff1f; 事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作&#xff1a;事务中的命令要么全部被执行&#xff0c;要么全部都…

怎么批量下载视频?DY视频爬虫在线提取采集工具

短视频批量下载工具&#xff0c;具有多种模块和功能&#xff0c;方便用户快速批量下载短视频。该软件的详细介绍&#xff1a; 功能模块介绍&#xff1a; 一. 搜索词批量搜索下载 视频关键词添加&#xff1a;支持添加多个视频关键词Q530269148进行全平台视频搜索。历史去重&a…

【全网瞩目】OpenAI春季发布会结束,一夜过后又惊喜——GPT4O,新的 LLM 标准诞生了

虽然昨天我就一直关注到OpenAI的主页提示&#xff0c;即将发布春季直播&#xff0c;而且也有很多媒体透露没有Sora&#xff0c;可能是AI Search等等&#xff0c;但是没想到结果还是这么惊喜。就连OpenAI方面也在直播前几天透露&#xff0c;不是搜索引擎&#xff0c;而是GPT的优…

vwmare虚拟机迁移磁盘方法

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理 虚拟机迁移磁盘的方法 简单方便快上手 当前目标 当前迁移文件: 当前位置&#xff1a; 目的地: e盘虚拟机文件夹 迁移到当前目录。 实际操作 先打开虚拟机的设置&#xff0c;找到这个虚拟机当前的位置…

渗透测试工具及插件第二期

一、OWASP Penetration Testing Kit 这个工具他集成了中间件&#xff0c;等版本信息&#xff0c;漏洞信息&#xff0c;url&#xff0c;标识头等信息&#xff0c;WAF/CDN识别&#xff0c;密匙等信息&#xff0c;多种信息的功能上集合的插件。 说明书&#xff1a;https://micros…

照明灯具十大排名都有哪些?市面上比较流行的十大护眼台灯品牌推荐

照明灯具十大排名都有哪些&#xff1f;护眼台灯排名当中靠前的主要有书客、飞利浦、松下等品牌。照明灯具作为家居与办公环境中不可或缺的元素&#xff0c;其品质与选择直接关系到人们的视觉健康与舒适度。本文将为大家揭示照明灯具的十大排名&#xff0c;让大家了解市场上最受…

SQL Server中怎么排查死锁问题

一、背景 我们在UAT环境压测的时候&#xff0c;遇到了如下的死锁异常。 Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 82) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Re…

Spring Cloud Alibaba 分布式配置中心(9)

项目的源码地址 Spring Cloud Alibaba 工程搭建&#xff08;1&#xff09; Spring Cloud Alibaba 工程搭建连接数据库&#xff08;2&#xff09; Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用&#xff08;3&#xff09; Spring Cloud Alibaba Ribbo…

C++深度解析教程笔记8

C深度解析教程笔记8 第17课 - 对象的构造&#xff08;上&#xff09;类定义中成员变量i和j的初始值&#xff1f;实验-成员变量的初始值对象初始化解决方案1实验-手动调用函数初始化对象对象初始化解决方案2&#xff1a;构造函数实验-构造函数小结 第18课 - 对象的构造&#xff…

Spring AI项目Open AI绘画开发指导

Spring AI项目创建 Spring AI简介创建Spring AI项目配置项目pom和application文件controller接口开发运行测试 Spring AI简介 Spring AI 是 AI 工程的应用框架。其目标是将 Spring 生态系统设计原则&#xff08;如可移植性和模块化设计&#xff09;应用于 AI&#xff0c;并推广…