2022 icpc杭州(F,D,A,C,K)

文章目录

  • [F. Da Mi Lao Shi Ai Kan De](https://codeforces.com/gym/104090/problem/F)
  • [D. Money Game](https://codeforces.com/gym/104090/problem/D)
  • [A. Modulo Ruins the Legend](https://codeforces.com/gym/104090/problem/A)
  • [C. No Bug No Game](https://codeforces.com/gym/104090/problem/C)
  • [K. Master of Both](https://codeforces.com/gym/104090/problem/K)

F. Da Mi Lao Shi Ai Kan De

题意:

格莱美已加入 n+1 个QQ 群。编号为 0∼n 的 QQ 群。Rice 老师在群 0 中。

每天,格莱美的朋友们都会向 1∼n 中的一些群发送信息,格莱美会选择米老师喜欢的信息转发到 0 群。

在这里,我们将信息定义为由小写字母组成的字符串,当且仅当字符串 "bie "是信息的子串时,赖斯老师才会喜欢该信息。

现在,给定 1∼n 组中的信息,格莱美将依次搜索从 1 组到 n组的信息,逐一检查组中的信息。对于每条信息,如果大米老师喜欢,并且没有在 0 组中出现过,就把它挑出来,转发到 0 组。这里的 "出现 "指的是同一条信息曾经转发到过 0 组。

请按顺序输出格莱美将转发到组 0 的所有邮件。对于每个组,如果格莱美无法挑选出任何信息,则单行输出 “大米老师,该玩玄心冲击了!”。

模拟即可,将字符串放入map或set里,如果怕会超的话,也可以用字符串哈希

#include <bits/stdc++.h>
using namespace std;
map<string, int> mp;
bool f(string s){for(int i=1;i<s.size()-1;i++){if(s[i]=='i'&&s[i-1]=='b'&&s[i+1]=='e') return true;}return false;
}
void solve() {int n; cin >> n;bool ed = false;while (n --) {string s; cin >> s;if (!f(s)) continue;if (!mp[s]) {cout << s << endl;mp[s] = 1;ed = true;}}if (!ed) {cout << "Time to play Genshin Impact, Teacher Rice!" << endl;}
}
int main() {int T; cin >> T;while (T --) solve();return 0;
}

D. Money Game

题意:

Putata 和 Budada 正在组织一场有 n 名玩家参加的游戏。每个玩家都有一些存款,这些存款都是实数。玩家 i 一开始有 ai 个存款。在每一轮游戏中,会依次发生以下情况:

  • 玩家 1 给玩家 2 玩家 1 存款的一半。
  • 玩家 2 给玩家 3 玩家 2 存款的一半。
  • 玩家 n−1 给玩家 n 玩家 n−1 押金的一半。
  • 玩家 n 给玩家 1 玩家 n 存款的一半。

n 位玩家正好下了 202 2 1204 2022^{1204} 20221204 轮。普塔塔想知道游戏结束后每个玩家有多少存款。请编写一个程序来回答他的问题。

轮数超级大,这题应该是规律题,要么有周期,要么最后是不动点
打表发现,最终一定是:第一个数是sum/(n+1)的两倍,其它数均是sum/(n+1),而且收缩得很快
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N=1e6+10;
double a[N];
int n;
void solve() {cin>>n;double sum=0;for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];double now=sum/(n+1);printf("%.10f ",now * 2);for(int i=1;i<=n - 1;i++) printf("%.10f ",now);cout<<endl;
}int main() {int T=1; while (T --) solve();return 0;
}

A. Modulo Ruins the Legend

题意:

格莱美有一个整数序列 a1,a2,…,an 。她认为序列中的元素过多,因此决定在序列中加入算术级数。从形式上看,她可以选择两个非负整数 s,d ,并在每个 k∈[1,n] 的基础上将 s+kd 加到 ak 。

由于我们想破坏图例,请告诉她操作后元素模 m 的最小和。注意,应在取模后将和最小化。

先把式子推导一下
令sum=a[1]+a[2]+...+a[n]
ans=(sum+n*s+(1+n)*n/2*d)%m
根据裴蜀定理,n*s+(1+n)*n/2*d=k1*gcd(n,(1+n)*n/2);
故ans=(sum+k1*gcd(n,(1+n)*n/2))%m

此时有一个trick:

假设出现a%b=res的话,可以转化为a=k*b+res

或者res=a-k*b

根据res=a-k*b,这里的ans是模之后的,其实就相当于res
故ans=sum+k1*gcd(n,(1+n)*n/2)-k2*m
再次用裴蜀定理,k1*gcd(n,(1+n)*n/2)-k2*m=k1*k2*gcd(n,(1+n)*n/2,m)=k*gcd(n,(1+n)*n/2,m)
故ans=sum+k*gcd(n,(1+n)*n/2,m)
由于ans表示的是模之后的,所以这已经是最终的表达式了,也就是说是模之后的,最小肯定是sum-若干个gcd(n,(1+n)*n/2,m),也就是ans=sum%gcd(n,(1+n)*n/2,m)
算出最小值之后,我们需要反推出s和d
通过扩展欧几里得可以反推:
n*s+(1+n)*n/2*d=k1*gcd(n,(1+n)*n/2)
k1*gcd(n,(1+n)*n/2)-k2*m=k*gcd(n,(1+n)*n/2,m)=ans-sum
由第二个式子可以推出k1,然后代入第一个式子推出s和d
由于s和d都要大于0,那么在模意义下就先模再加模再模就可以转化为正数了

有可能会爆long long,因为最终是模意义下的答案,所以中途都可以模

说实话看不出来为什么会爆long long,但是如果是求模意义下的答案的话,最好在中途一直模,防止中途爆long long

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=1e5+10;
int a[N];
int n,m;
int exgcd(int a,int b,int &x,int &y){if(b==0){x=1,y=0;return a;}int d=exgcd(b,a%b,y,x);y-=a/b*x;return d;
}
int gcd(int a,int b){if(b==0) return a;return gcd(b,a%b);
}
void solve() {cin>>n>>m;int sum=0;for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];int g1=gcd(n,(1+n)*n/2);int g2=gcd(g1,m);int ans=sum%g2;int k1,k2;exgcd(g1,m,k1,k2);k1*=(ans-sum)/g2%m;k1%=m;int s,d;exgcd(n,(1+n)*n/2,s,d);s*=k1,d*=k1;s=(s%m+m)%m,d=(d%m+m)%m;cout<<ans<<endl;cout<<s<<' '<<d<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

或者用__int128,注意快写里面有putchar(),不要关闭同步流了

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=1e5+10;
int a[N];
int n,m;
int exgcd(int a,int b,__int128 &x,__int128 &y){if(b==0){x=1,y=0;return a;}int d=exgcd(b,a%b,y,x);y-=a/b*x;return d;
}
int gcd(int a,int b){if(b==0) return a;return gcd(b,a%b);
}
int read()
{int x=0,f=1;char ch=nc();while(ch<48||ch>57){if(ch=='-')f=-1;ch=nc();}while(ch>=48&&ch<=57)x=x*10+ch-48,ch=nc();return x*f;
}
void write(int x)
{if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0');return;
}
void solve() {cin>>n>>m;int sum=0;for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];int g1=gcd(n,(1+n)*n/2);int g2=gcd(g1,m);int ans=sum%g2;__int128 k1,k2;exgcd(g1,m,k1,k2);k1*=(ans-sum)/g2;__int128 s,d;exgcd(n,(1+n)*n/2,s,d);s*=k1,d*=k1;s=(s%m+m)%m,d=(d%m+m)%m;cout<<ans<<endl;write(s);cout<<' ';	write(d);cout<<endl;
}
signed main() {
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

C. No Bug No Game

题意:

Putata 正在筹备由国际电脑游戏公司(ICPC)举办的 RPG 职业联赛(RPL)。在这款 RPG 游戏中,玩家将同时佩戴 n 件物品。每件道具都能为玩家提供几分力量。游戏中有一个魔法 BUFF,它可以升级每件道具,使它们能够提供几分额外的力量。

不过,这个 BUFF 是有限制的,它最多只能提供 k 点能量。从形式上看,假设玩家一开始什么都没穿,然后会一件一件地穿上所有 n 物品。游戏服务器将根据玩家穿戴的排列方式,逐一扫描所有这些 n 物品。当服务器扫描到 i -th件物品时,可以提供 pi 点能量,让 ∑ j = 1 i − 1 \sum_{j=1}^{i-1} j=1i1 p j p_j pj 表示之前扫描到的总能量:

  • 如果 sum+ p i p_i pi≤k ,则整个物品都将升级。BUFF 将提供 w i , p i w_{i,p_i} wi,pi 点额外能量。
  • 如果是 sum≥k ,物品不会升级。该 BUFF 将不提供任何效果。
  • 否则,只会升级部分物品。该 BUFF 将提供 w i , k − s u m w_{i,k−sum} wi,ksum 点额外能量。

普塔塔很聪明,他很快就意识到,他可以调整佩戴这些 n 物品的排列组合,以获得更多点的奖励力量!不幸的是,Putata 不知道最佳排列方式,请编写一个程序来帮助他。

游戏服务器执行魔法缓冲的行为是一个错误。游戏代码能正常工作全靠 BUG,所以 w i , a w_{i,a} wi,a> w i , b w_{i,b} wi,b 有可能是 a<b 。

翻译一下就是

有n个物品,背包容量为k,每个物品重量为 p i p_i pi,取的重量不同,获得的价值也不同,从1到 p i p_i pi分别为 w i j w_{ij} wij,如果当前背包容量足够,则必须取完整的重量,否则才可以取部分重量来填满剩余的背包容量,问能取得的最大价值是多少?

有限制的选择-->背包
不是经典的背包,则视为背包变形
有一个关键的点,如果背包容量足够则必须取完整的重量,否则取部分重量,所以取部分重量的最多有一个
所以我们枚举哪一个是取部分的,并且是取的部分的体积是多少,其它的话则正常01背包,假设部分取了x,那么枚举前面部分体积为j,则后面部分体积为k-x-j,分别预处理前缀后缀背包即可

类似的背包变形,前缀后缀背包的是2022南京B. Ropeway

关于初始化,如果是求最大,那么全部初始化为负无穷,求最小初始化为正无穷

然后看循环最开始需要什么就初始化什么

这题需要初始为负无穷,正常的背包其实全是0是可以的,但是

ans=max(ans,dp1[i-1][pre]+w[i][j]+dp2[i+1][last]);
如果w[i][j]比较大,但是dp1[i-1][pre]不合法,而它为0,那么就把不合法的记录下来了,初始化为负无穷就不会max到ans里了
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=3010;
int p[N];
int w[N][20];
int n,k;
int dp1[N][N],dp2[N][N];
void solve() {cin>>n>>k;for(int i=0;i<=n+1;i++){for(int j=0;j<=k;j++){dp1[i][j]=dp2[i][j]=-1e18;}}int sum=0;for(int i=1;i<=n;i++){cin>>p[i];sum+=p[i];for(int j=1;j<=p[i];j++) cin>>w[i][j];}//全选if(sum<=k){int ans=0;for(int i=1;i<=n;i++) ans+=w[i][p[i]];cout<<ans<<endl;return;}//前缀背包dp1[0][0]=0;for(int i=1;i<=n;i++){for(int j=0;j<=k;j++){dp1[i][j]=dp1[i-1][j];if(j>=p[i]) dp1[i][j]=max(dp1[i][j],dp1[i-1][j-p[i]]+w[i][p[i]]);}}//后缀背包dp2[n+1][0]=0;for(int i=n;i>=1;i--){for(int j=0;j<=k;j++){dp2[i][j]=dp2[i+1][j];if(j>=p[i]) dp2[i][j]=max(dp2[i][j],dp2[i+1][j-p[i]]+w[i][p[i]]);}}int ans=0;for(int i=2;i<n;i++){for(int j=1;j<=p[i];j++){//枚举选了第i个物品的部分体积为jint res=k-j;//剩下的体积if(res<0) continue;for(int pre=0;pre<=res;pre++){//前缀体积int last=res-pre;//后缀体积if(last<0) continue;ans=max(ans,dp1[i-1][pre]+w[i][j]+dp2[i+1][last]);}}}for(int j=1;j<=p[1];j++){int res=k-j;if(res<0) continue;ans=max(ans,dp2[2][res]+w[1][j]);}for(int j=1;j<=p[n];j++){int res=k-j;if(res<0) continue;ans=max(ans,dp1[n-1][res]+w[n][j]);}cout<<ans<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

K. Master of Both

题意:

慧博特教授是弦理论和高级数据结构方面的大师,因此他提出了一个有趣的问题。给定一个仅由小写英文字母组成的 n 字符串序列,如果按词典顺序比较,这个序列中有多少个倒序?

作为慧机器人的得意门生,普塔塔和布达达分别掌握了高超的字符串理论和高级数据结构技巧,他们一起轻松地解决了这个问题。然而,在 q 个不同的平行宇宙中,字母表中的字符并不是按照原来的顺序出现的。

从形式上看,每个宇宙中的字母表都是一个字符串,它是 26 个小写英文字母的排列组合,表示每个字符出现的顺序。

当且仅当以下条件之一成立时,字符串 aa 在词法上小于字符串 b :

  • a 是 b 的前缀,但 a≠b ;
  • 在 a 和 b 不同的第一个位置上,字符串 a 的字母在字母表中的出现时间早于 b 中的相应字母。

长度为 n 的序列 a 中的倒序数是 (i,j) 中 1≤i<j≤n , aj<ai 的有序对的个数。

请帮助每个宇宙中的 Putata 和 Budada 解决这个问题

如果对于每个宇宙,分别求逆序对肯定是超时的,必须提前预处理
字典序比较的一大特征就是前面均相同,然后出现第一个不一样的,也就是说有一个公共前缀

公共前缀想到字典树

比如枚举到某一个点x时,它的父亲节点的其它子节点和它有公共前缀,直到当前才不一样,并且顺序早于它,所以我们可以提前记录cnt[pre] [x]的个数,也就是pre在前,x在后,它们不一样,它们的前面是公共前缀,由于只有26个字母,所以cnt[30] [30]就够了

然后在处理询问时,我们就枚举当前宇宙规则下前面是大的字母pre,后面是小的字母last,看cnt[pre] [last]即为贡献

注意,这样只能比较有公共前缀,且当前字符不同的情况,但是可能出现abc,ab这一情况,是记录不了的,所以每个字符串后面加一个比26个字母都都小的’a’-1

我们的数组要开到总字符串的长度,由于每个字符串后面加了一个’a’-1,所以光1e6是不够的,再加5e5

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=1e6+5e5+10;
int f[N][30];
int cnt[N];
int idx;
int n,q;
int ans[30][30];
//插入字符串
void insert(string s){int p=0;for(int i=0;i<(int)s.size();i++){int j=s[i]-'a'+1;if(!f[p][j]) f[p][j]=++idx;for(int k=0;k<=26;k++){if(k==j) continue;ans[k][j]+=cnt[f[p][k]];}p=f[p][j];cnt[p]++;}
}
void solve() {cin>>n>>q;for(int i=0;i<n;i++){string s;cin>>s;s+='a'-1;insert(s);}while(q--){string s;cin>>s;int res=0;for(int i=0;i<26;i++){res+=ans[s[i]-'a'+1][0];for(int j=0;j<i;j++){res+=ans[s[i]-'a'+1][s[j]-'a'+1];}}cout<<res<<endl;}
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

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

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

相关文章

ArcGIS/QGIS按掩膜提取或栅格裁剪后栅格数据的值为什么变了?

问题描述&#xff1a; 现有一栅格数据&#xff0c;使用ArcGIS或者QGIS按照矢量边界进行按掩膜提取或者栅格裁剪以后&#xff0c;其值的范围发生了变化&#xff0c;如下&#xff1a; 可以看到&#xff0c;不论是按掩膜提取还是进行栅格裁剪后&#xff0c;其值的范围均与原来栅…

后台管理系统窗体程序:文章管理 > 文章列表

目录 文章列表的的功能介绍&#xff1a; 1、进入页面 2、页面内的各种功能设计 &#xff08;1&#xff09;文章表格 &#xff08;2&#xff09;删除按钮 &#xff08;3&#xff09;编辑按钮 &#xff08;4&#xff09;发表文章按钮 &#xff08;5&#xff09;所有分类下拉框 &a…

大数据学习10之Hive高级

1.Hive高级 将大的文件按照某一列属性进行GROUP BY 就是分区&#xff0c;只是默认开窗存储&#xff1b; 分区是按行&#xff0c;如一百行数据&#xff0c;按十位上的数字分区&#xff0c;则有十个分区&#xff0c;每个分区里有十行&#xff1b; 分桶是根据某个字段哈希对桶数取…

Me-LLaMA——用于医疗领域的新型开源大规模语言模型

摘要 大规模语言模型的出现是提高病人护理质量和临床操作效率的一个重大突破。大规模语言模型拥有数百亿个参数&#xff0c;通过海量文本数据训练而成&#xff0c;能够生成类似人类的反应并执行复杂的任务。这在改进临床文档、提高诊断准确性和管理病人护理方面显示出巨大的潜…

练习LabVIEW第四十四题

学习目标&#xff1a; 计算学生三门课(语文&#xff0c;数学&#xff0c;英语)的平均分&#xff0c;并根据平均分划分成绩等级。要求输出等级A,B,C,D,E。90分以上为A&#xff0c;80&#xff5e;89为B&#xff0c;70&#xff5e;79为C&#xff0c;60&#xff5e;69为D&#xff…

重建大师7.0 | 全新倾斜高斯泼溅OPGS技术,实景三维大规模城市三维场景的更逼真化表达

在刚刚结束的“AI智算、国产信创”2024秋季新品发布会上&#xff0c;大势智慧隆重发布了重建大师7.0、重建农场信创版、低空三维AI智算平台等覆盖实景三维数据生产体系全流程、推进实景三维国产化建设与低空应用的全新系列产品。 今天&#xff0c;重点为大家介绍一下重建大师7.…

【MySQL 保姆级教学】深层理解索引及特性(重点)--下(12)

索引&#xff08;重点&#xff09; 1. 索引的作用2. 索引操作2.1 主键索引2.1.1 主键索引的特点2.1.2 创建主键索引 2.2 唯一键索引2.2.1 唯一键索引的特点2.2.2 唯一索引的创建 2.3 普通索引2.3.1 普通索引的特点2.3.2 普通索引的创建 2.4 全文索引2.4.1 全文索引的作用2.4.2 …

力扣: 144 二叉树 -- 先序遍历

二叉树 – 先序遍历 描述&#xff1a; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例&#xff1a; 先序遍历&#xff1a;根左右 何解&#xff1f; 1、递归 : 无需多言一看就懂 2、遍历法 中序查找时&#xff0c;最先出入的节点是左子树中的最左侧二叉…

【K8S系列】K8S 集群 CPU 爆满导致 Pod Pending 状态的分析与解决方案

在 Kubernetes 集群中&#xff0c;CPU 突然爆满可能导致 Pod 状态变为 Pending&#xff0c;影响应用的可用性。本文将深入分析其原因&#xff0c;并附上相关命令及其执行结果&#xff0c;帮助你更好地理解和解决此问题。 1. 问题描述 在 Kubernetes 集群中&#xff0c;当 CPU …

Linux awk命令详解-参数-选项-内置变量-内置函数-脚本(多图、多示例)

文章目录 awk基础结构说明与示例参数与内置变量常用参数内置变量其他参数内置变量 简单示例理解option简单参数NR与FNR-v ARGC ARGV参数 执行脚本if elsefor循环关联数组指定匹配pattern 使用正则指定分隔符理解pattern正则与逻辑算术 printfif else for whileBEGIN ENDnext(跳…

【Android】组件化开发入门

文章目录 引入组件是什么?为什么使用组件化开发?什么是模块化&#xff0c;组件化&#xff0c;插件化&#xff1f;常见实现 组件分层创建module 组件单独调试配置组件工程类型配置组件ApplicationId和AndroidManifest文件 引入 组件是什么? 组件&#xff08;Component&#…

MySQL数据库基础(一) MySQL安装及数据类型

目录 一、MySQL数据裤简介 二、MySQL数据的安装 2.1、MySQL安装 2.2、修改MySQL密码登录策略 三、数据库基础管理 3.1、连接方式及数据储存流程 3.2、库管理命令 3.3、表管理命令 3.4、记录管理命令 四、MySQL数据类型 4.1、常见信息种类 4.2、字符型 4.3、数值型 4.4、日期时间…

云原生+AI核心技术&最佳实践

以下内容是我在陕西理工大学2023级人工智能专业和网络专业的演讲内容&#xff0c;分享给大家。 各位老师、同学们&#xff0c;大家好啊&#xff01;能在这里跟大家一起聊聊咱们计算机专业那些事儿&#xff0c;我真的觉得超级兴奋&#xff01; 首先&#xff0c;自我介绍一下&am…

Qt QCustomplot 在采集信号领域的应用

文章目录 一、常用的几种开源库:1、QCustomPlot:2、QChart:3、Qwt:QCustomplot 在采集信号领域的应用1、应用实例时域分析频谱分析2.数据筛选和处理其他参考自然界中的物理过程、传感器和传感器网络、电路和电子设备、通信系统等都是模拟信号的来源。通过可视化模拟信号,可以…

C++11的简介

杀马特主页&#xff1a;羑悻的小杀马特.-CSDN博客 ------ ->欢迎阅读 欢迎阅读 欢迎阅读 欢迎阅读 <------- 目录 一列表初始化的变化&#xff1a; 二左右值即各自引用的概念&#xff1a; 2.1左右…

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景&#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录&#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到&#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…

5G时代已来:我们该如何迎接超高速网络?

内容概要 随着5G技术的普及&#xff0c;我们的生活似乎变得更加“科幻”了。想象一下&#xff0c;未来的智能家居将不仅仅是能够听你说“开灯”&#xff1b;它们可能会主动询问你今天心情如何&#xff0c;甚至会推荐你一杯“维他命C芒果榨汁”&#xff0c;帮助你抵御夏天的炎热…

Unity SRP学习笔记(二)

Unity SRP学习笔记&#xff08;二&#xff09; 主要参考&#xff1a; https://catlikecoding.com/unity/tutorials/custom-srp/ https://docs.unity.cn/cn/2022.3/ScriptReference/index.html 中文教程部分参考&#xff08;可选&#xff09;&#xff1a; https://tuncle.blog/c…

【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期

目录 1. start() (1) start() 的性质 (2) start() 和 Thread类 的关系 2. 终止一个线程 (1)通过共享的标记结束线程 1. 通过共享的标记结束线程 2. 关于 lamda 表达式的“变量捕获” (2) 调用interrupt()方法 1. isInterrupted() 2. currentThread() …

粤荣学校与亲邻家政达成合作,创造双向人才输送机制

原标题&#xff1a;超过大学生月薪&#xff01;粤荣学校与亲邻家政达成合作&#xff0c;创造双向人才输送机制&#xff0c;解决中年人就业难题&#xff01; 广州市白云区粤荣职业培训学校余智强校长与广州亲邻家政服务有限公司朱利生经理于2024年11月8日下午共同签署了一份重要…