当前位置: 首页 > news >正文

牛客周赛 Round 39(A,B,C,D,E,F,G)

比赛链接

官方题解(视频)

B题是个贪心。CD用同余最短路,预处理的完全背包,多重背包都能做,比较典型。E是个诈骗,暴力就完事了。F是个线段树。G是个分类大讨论,出题人钦定的本年度最佳最粪 题目


A 小红不想做炸鸡块粉丝粉丝题

思路:

签到

code:

#include <iostream>
#include <cstdio>
using namespace std;int a,tot;int main(){cin>>a;tot=a;for(int i=2,t;i<=6;i++)cin>>t,tot+=t;if(a*30>=tot)puts("No");else puts("Yes");return 0;
}

B 小红不想做鸽巢原理

思路:

emmmm不太清楚和鸽巢原理有啥关系,就是个贪心的思路。

因为是 k k k k k k 个取走,所以假设一共有 t o t tot tot 个小球,最后会剩下 t o t % k tot\%k tot%k 个小球。因为要剩下的种类尽可能少,那么我们尽可能留下数量多的种类就行了。

code:

#include <iostream>
#include <cstdio>
#include <set>
using namespace std;
const int maxn=1e5+5;
typedef long long ll;int n,k;
ll tot=0;
set<int> S;int main(){cin>>n>>k;for(int i=1,t;i<=n;i++){cin>>t;S.insert(t);tot+=t;}tot%=k;if(tot==0){cout<<0<<endl;return 0;}int ans=0;for(auto it=S.rbegin();it!=S.rend();it++){ans++;if(tot>*it)tot-=*it;else break;}cout<<ans<<endl;return 0;
}

C,D 小红不想做完全背包

思路:

和寒假营第二场的D题是同种类型的题,做法有三:同余最短路,带预处理的完全背包,多重背包。

因为我们只想要是 p p p 的倍数,而这个数是什么我们不关心,所以我们用到的数都直接模 p p p 即可,当模 p p p 等于零的时候就是 p p p 的倍数了,这就算是比较典型板子 的带同余的完全背包问题了。

它和一般的完全背包还不太一样,普通的完全背包跑一趟就够了,因为重量不会无缘无故减少,我们只要从小到大跑一遍就能考虑到所有情况了,但是带同余的话重量就有可能减少了。比如容量为 7 7 7,物品的重量为 3 3 3,不带只跑一遍和带了跑到重复为止的结果是不一样的,如下图:

容量:0 1 2 3 4 5 6不带:0 0 1 0 0 2 0
带了:5 3 1 6 4 2 7

一般来说,我们从某个位置出发,为了跑到第一次重复,至少需要跑 p 2 g c d ( a i , p ) \dfrac {p^2}{gcd(a_i,p)} gcd(ai,p)p2 次(设 a i ∗ x ≡ a i ( m o d p ) a_i*x\equiv a_i\pmod p aixai(modp),解出来 x = p g c d ( a i , p ) + 1 x=\dfrac p{gcd(a_i,p)}+1 x=gcd(ai,p)p+1,也就是说一趟只用跑 p g c d ( a i , p ) \dfrac p{gcd(a_i,p)} gcd(ai,p)p 次就可以停了,再以每位置开始跑一趟,一共 p ∗ p g c d ( a i , p ) p*\dfrac p{gcd(a_i,p)} pgcd(ai,p)p 次)。再算上有 n n n 件物品,这样时间复杂度就爆了, 最坏情况 O ( n ∗ p 2 ) O(n*p^2) O(np2)

大致代码如下,TLE了(数据太弱了,居然就T了三个点,而且如果就算不枚举开始位置,只跑一次,甚至只WA三个点,经过某些神秘的顺序安排,居然还能AC,给人一种做法是正确的的错觉)

	cin>>n>>p;vector<int> a(n);for(int i=0,t;i<n;i++){cin>>t;a[i]=t%p;}sort(a.begin(),a.end());a.erase(unique(a.begin(),a.end()),a.end());n=a.size();vector<int> dp(p+5,1e9);for(auto x:a){dp[x]=1;for(int idx=0;idx<p;idx++)for(int i=1,t=(idx+x)%p;i<p/gcd(x,p);i++,t=(t+x)%p)dp[(t+x)%p]=min(dp[(t+x)%p],dp[t]+1);}cout<<dp[0];

发现我们没必要从每个位置开始都跑 p g c d ( a i , p ) \dfrac p{gcd(a_i,p)} gcd(ai,p)p 次,我们用多个物品得到的重量是固定的,我们不如一开始就处理好,然后直接拿来用。具体来说,设 c s t [ i ] cst[i] cst[i] 表示增加重量为 i i i 需要使用多少个物品,多个物品可以都处理到一个 c s t [ i ] cst[i] cst[i],预处理的时间复杂度为 n ∗ p g c d ( a i , p ) n*\dfrac p{gcd(a_i,p)} ngcd(ai,p)p,使用的时候直接把 c s t [ i ] cst[i] cst[i] 当作物品跑完全背包,每个物品只跑一趟即可。

为什么预处理后不需要跑多趟了?原来我们用物品 a i a_i ai 跑第一次的时候,这时相当于用 c s t [ a i % p ] cst[a_i\%p] cst[ai%p] 跑一次,原来我们用物品 a i a_i ai 跑第二次的时候,这时相当于用 c s t [ 2 ∗ a i % p ] cst[2*a_i\%p] cst[2ai%p] 跑一次,原来我们用物品 a i a_i ai 跑第三次的时候,这时相当于用 c s t [ 3 ∗ a i % p ] cst[3*a_i\%p] cst[3ai%p] 跑一次,类推,甚至我们多个物品同时处理后,这个 c s t cst cst 值还会更小,答案更优。因此我们原本每个位置每个物品跑多次,现在只要每个位置每个 c s t cst cst 跑一次就可以了。

因此完全背包部分时间复杂度就优化为了 O ( p 2 ) O(p^2) O(p2)。总的时间复杂度就优化为了 O ( n ∗ p g c d ( a i , p ) + p 2 ) O(\dfrac {n*p}{gcd(a_i,p)}+p^2) O(gcd(ai,p)np+p2),最坏 O ( n p + p 2 ) O(np+p^2) O(np+p2)

另外同余最短路和多重背包也是正确的做法,数据弱,奇奇怪怪的做法也能日过去。

code:

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn=2005;int n,p;
int gcd(int a,int b){while(b)b^=a^=b^=a%=b;return a;
}int main(){cin>>n>>p;vector<int> a(n);for(int i=0,t;i<n;i++){cin>>t;a[i]=t%p;}sort(a.begin(),a.end());a.erase(unique(a.begin(),a.end()),a.end());n=a.size();vector<int> cst(p+5,1e9),dp(p+5,1e9);for(auto x:a){for(int i=1,cur=x;i<=p;i++,cur=(cur+x)%p){cst[cur]=min(cst[cur],i);}}for(int i=0;i<p;i++){int x=cst[i];//i步数 x代价 dp[i]=min(dp[i],x);for(int j=i;j<p+i;j++)dp[j%p]=min(dp[j%p],dp[(j-i+p)%p]+x);}cout<<dp[0];return 0;
}

E 小红不想做莫比乌斯反演杜教筛求因子和的前缀和

思路:

之前练习赛出了一个名字差不多的题,特难。这次出题人估计是想骗做题人给自己上压力,不过可惜放在了 E E E 题的位置上。没骗到。

枚举长 n n n 和宽 m m m,然后算出 p p p,统计答案个数即可。

code:

#include <iostream>
#include <cstdio>
using namespace std;int n,m,p,x;
int ans=0;int main(){cin>>n>>m>>p>>x;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if((x-i*j)%(2*(i+j))==0 && (x-i*j)/(2*(i+j))>=1 && (x-i*j)/(2*(i+j))<=p)ans++;cout<<ans;return 0;
}

F 小红不想做模拟题

思路:

区间修改,区间查询,还是比较明显能想到线段树的。

当我们区间推平时,比如推平了 a a a 串的区间 [ l , r ] [l,r] [l,r],把它变成 1 1 1,那么这一段区间 1 1 1 的对数就变成了 b b b 串这段区间中 1 1 1 的个数,同理推平另一个串。所以我们为了维护区间 1 1 1 的对数,还需要分别维护住 a , b a,b a,b 串区间内 1 1 1 的个数。

另外因为这个题只进行了一个简单的推平操作,所以我们也不需要写懒节点并将节点信息向下传递,我们只要在线段树节点上打个标记,表示是否推平了,之后修改或者查询的时候查到标记就直接返回就行了。

code:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=1e5+5;int n,q;
string str[2];struct segment_tree{#define ls p<<1#define rs p<<1|1struct Node{int l,r;int a,b;//区间内 a串1的个数,b串1的个数int sam;//ab串同为1的位置的个数bool fa,fb;//是否填平Node(int l=0,int r=0,int a=0,int b=0,int sam=0,bool fa=false,bool fb=false):l(l),r(r),a(a),b(b),sam(sam),fa(fa),fb(fb){}; }tr[maxn<<4];void push_up(int p){auto& [l,r,a,b,sam,fa,fb]=tr[p];a=(fa)?r-l+1:tr[ls].a+tr[rs].a;b=(fb)?r-l+1:tr[ls].b+tr[rs].b;if(fa)sam=tr[p].b;else if(fb)sam=tr[p].a;else sam=tr[ls].sam+tr[rs].sam;}void build(int p,int l,int r){tr[p].l=l;tr[p].r=r;if(l==r){tr[p].a=(str[0][l-1]=='1');tr[p].b=(str[1][l-1]=='1');tr[p].sam=(tr[p].a && tr[p].b);return;}int mid=l+r>>1;build(ls,l,mid);build(rs,mid+1,r);push_up(p);}void print(int p,int l,int r){printf("%d [%d,%d]:%d %d %d\n",p,l,r,tr[p].a,tr[p].b,tr[p].sam);if(l==r){return;}int mid=l+r>>1;print(ls,l,mid);print(rs,mid+1,r);}void print(){print(1,1,n);}void modify(int p,int l,int r,int L,int R,bool st){if(L<=l && r<=R){if(st){//填平a串 tr[p].a=r-l+1;tr[p].fa=true;tr[p].sam=tr[p].b;}else {//填平b串 tr[p].b=r-l+1;tr[p].fb=true;tr[p].sam=tr[p].a;}return;}int mid=l+r>>1;if(mid>=L)modify(ls,l,mid,L,R,st);if(mid<R)modify(rs,mid+1,r,L,R,st);push_up(p);}int q(){return tr[1].sam;}#undef ls#undef rs
}tr;int main(){
//	cin.tie(0)->sync_with_stdio(false);cin>>n>>str[0]>>str[1];tr.build(1,1,n);for(cin>>q;q;q--){char ch;int l,r;cin>>ch>>l>>r;tr.modify(1,1,n,l,r,(ch=='A'));cout<<tr.q()<<endl;
//		tr.print();
//		cout<<endl;}return 0;
}

G 小红不想做平衡树

思路:

我们发现,在一个数列里,数列一定是升序段降序段交替出现的,比如:升序-降序-升序-降序…,或者 降序-升序-降序-升序…。

我们选择一段区间,然后翻转其某个子段,使得反转后成为一个升序序列,有五种可能的情况(因为题目保证了数列中数各不相同,所以这里不讨论数值相等的情况,下面默认如此):

  1. 整段升序。
  2. 整段降序。
  3. 先升序,后降序。而且第一段最大值小于第二段最小值。
  4. 先降序,后升序。而且第一段最大值小于第二段最小值。
  5. 先升序,后降序,再升序。第一段最大值小于第二段最小值,且第二段最大值小于第三段最小值。

大概示例图如下:
在这里插入图片描述

我们对每种情况分别讨论,然后统计答案即可。

不过实际在写的时候会非常麻烦,因为前一段的末尾那个数正好就是后一段开头的那个数,导致上面的五种情况会出现重叠计数的情况。比如第三种情况中,第二段只取第一个数时,统计出来的答案就会和第一种情况完全重复,再比如第五种情况中第一段只选第一个数时统计出来的答案都和第四种情况出现重复等。在官方题解的写法中,细节也是蛮多的。下面只讲我的写法,和题解不太一样。

回到开头,在一个数列里,数列一定是升序段降序段交替出现的,而升序段和降序段交界处的那个数是两段共用的。这种“转折点”有两种类型:升序变降序(形如 ^),降序变升序(形如 √)。而且是交替出现的。

我们可以把这些转折点处理出来,然后根据转折点来统计答案。虽然仍然会出现重复的情况,但是更直观一些(大概?)

code:

#include <iostream>
#include <cstdio>
#include <vector>
#define pii pair<int,int>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;int n,a[maxn];int main(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];ll ans=0;int st=-1;//第一个 ^ 点的位置vector<int> ver;for(int i=2,f;i<n;i++){f=-1;if(a[i-1]<a[i] && a[i]>a[i+1])f=0;// ^if(a[i-1]>a[i] && a[i]<a[i+1])f=1;// √if(!~st)st=f;if(~f)ver.push_back(i);}int tl=1,len,tn=ver.size();//1 2for(auto i:ver){len=i-tl+1;ans+=1ll*(len+1)*len/2;tl=i;}len=n-tl+1;ans+=1ll*(len+1)*len/2;ans-=tn;for(int i=st,id,l,r;i<ver.size();i+=2){//3id=ver[i];l=(i==0)?1:ver[i-1];r=(i==ver.size()-1)?n:ver[i+1];for(int j=id+1;j<=r;j++){//这边从id+1的位置开始统计,当j=id时会和情况2重复if(a[j]>a[id-1])ans+=id-l;else break;}}for(int i=st^1,id,l,r;i<ver.size();i+=2){//4id=ver[i];l=(i==0)?1:ver[i-1];r=(i==ver.size()-1)?n:ver[i+1];for(int j=id-1;j>=l;j--){//这边从id-1的位置开始统计,当j=id时会和情况1重复if(a[j]<a[id+1])ans+=r-id;else break;}}for(int i=st,id1,id2,l,r;i+1<ver.size();i+=2){//5id1=ver[i];id2=ver[i+1];l=(i==0)?1:ver[i-1];r=(i+1==ver.size()-1)?n:ver[i+2];if(a[id1-1]<a[id2] && a[id1]<a[id2+1])ans+=1ll*(id1-l)*(r-id2);}cout<<ans<<endl;return 0;
}

相关文章:

牛客周赛 Round 39(A,B,C,D,E,F,G)

比赛链接 官方题解&#xff08;视频&#xff09; B题是个贪心。CD用同余最短路&#xff0c;预处理的完全背包&#xff0c;多重背包都能做&#xff0c;比较典型。E是个诈骗&#xff0c;暴力就完事了。F是个线段树。G是个分类大讨论&#xff0c;出题人钦定的本年度最佳最粪 题目…...

解锁区块链技术的潜力:实现智能合约与DApps

在数字时代&#xff0c;区块链技术正迅速成为重塑多个行业的革命性力量。从金融服务到供应链管理&#xff0c;再到数字身份验证&#xff0c;区块链提供了一种去中心化、安全和透明的数据处理方式。在本文中&#xff0c;我们将深入探讨区块链技术&#xff0c;特别是智能合约和去…...

MAC OS关闭SIP(navicat 无法保存密码)

最近安装navicat&#xff08;16.3.7&#xff09;时,安装后无法保存密码,保存密码会报错如下&#xff1a; 因为用的破解版&#xff0c;一开始是打不开的&#xff0c;用自带的修复软件修复后就可以打开了&#xff0c;但是保存密码就会报错&#xff0c;按照网上的一些操作 1、卸载…...

阿里云服务器带宽价格全解析,附报价单

阿里云服务器公网带宽怎么收费&#xff1f;北京地域服务器按固定带宽计费一个月23元/M&#xff0c;按使用流量计费0.8元/GB&#xff0c;云服务器地域不同实际带宽价格也不同&#xff0c;阿里云服务器网aliyunfuwuqi.com分享不同带宽计费模式下带宽收费价格表&#xff1a; 公网…...

Day36|贪心算法part05:435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 有了上题射气球的因子&#xff0c;这题也就有思路了&#xff0c;反正无脑排序就行了&#xff1a; 首先将所有区间按照end的大小从小到大排序&#xff1b;选取最早end为起始x_end遍历所有区间&#xff0c;如果该区间的start比end大&#xff08;可重叠&#xf…...

棋牌室计时吧台计费收费灯控管理系统软件操作流程

棋牌室计时吧台计费收费灯控管理系统软件操作流程 一、前言 以下软件操作教程以&#xff0c;佳易王棋牌桌球计时计费管理系统软件灯控版V17.87为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 该计时计费软件可以是棋牌和桌球混合同时计时计费 …...

【实践篇】RabbitMQ实现队列延迟功能汇总

前言 记录下RabbitMQ实现延迟队列功能的所有实践内容。 前期准备&#xff0c;需要安装好docker、docker-compose的运行环境。 一、安装RabbitMQ 开启RabbitMQ的WEB管理功能。-CSDN博客 二、实现延迟队列的两种方式 RabbitMQ实现延迟队列的两种方式。-CSDN博客 三、实践文…...

EditPlus来啦(免费使用!)

hello&#xff0c;我是小索奇 今天推荐一款编辑器&#xff0c;是索奇学习JavaSE时入手滴&#xff0c;非常好用哈&#xff0c;小索奇还是通过老杜-杜老师入手滴&#xff0c;相信很多人也是通过老杜认识嘞&#xff0c;来寻找破解版或者准备入手这个间接使用的编辑器~ EditPlus是…...

蓝桥杯22年第十三届省赛-数组切分|线性DP

题目链接&#xff1a; 蓝桥杯2022年第十三届省赛真题-数组切分 - C语言网 (dotcpp.com) 1.数组切分 - 蓝桥云课 (lanqiao.cn) 这道题C语言网数据会强一些。 说明&#xff1a; 对于一个切分的子数组&#xff0c;由于数组是1-N的一个排列&#xff0c;所以每个数唯一 可以用子…...

小米汽车:搅动市场的鲶鱼or价格战砧板上的鱼肉?

3月28日晚&#xff0c;备受关注的小米汽车上市发布会召开&#xff0c;小米集团董事长雷军宣布小米SU7正式发布。小米汽车在带飞股价的同时&#xff0c;二轮订购迅速售尽。 图一&#xff1a;小米集团股价 雷军口中“小米汽车迈出的第一步&#xff0c;也是人生最后一战的开篇”&a…...

Docker 学习笔记(五):梳理 Docker 镜像知识,附带 Commit 方式提交镜像副本,安装可视化面板 portainer

一、前言 记录时间 [2024-4-10] 前置文章&#xff1a; Docker学习笔记&#xff08;一&#xff09;&#xff1a;入门篇&#xff0c;Docker概述、基本组成等&#xff0c;对Docker有一个初步的认识 Docker学习笔记&#xff08;二&#xff09;&#xff1a;在Linux中部署Docker&…...

K8S node节点执行kubectl get pods报错

第一个问题是由第二个问题产生的&#xff0c;第二个问题也是最常见的 网上找的都是从master节点把文件复制过来&#xff0c;这样确实可以解决&#xff0c;但是麻烦&#xff0c;有一个node节点还好&#xff0c;如果有多个呢&#xff1f;每个都复制吗&#xff1f;下面是我从外网…...

C++简单日志系统

需求描述 日志等级&#xff1a;定义一个枚举类型 LogLevel&#xff0c;包含至少四个等级&#xff1a;DEBUG、INFO、WARNING、ERROR。日志记录&#xff1a;实现一个 Logger 类&#xff0c;包含以下功能&#xff1a; 一个静态方法 log&#xff0c;接受 LogLevel 和一个字符串作为…...

MySQL基础练习题:习题21-25

这部分主要是为了帮助大家回忆回忆MySQL的基本语法&#xff0c;数据库来自于MySQL的官方简化版&#xff0c;题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。 列出在部门sales工作的员工的姓名&#xff0c;假定不知道销售部的部门编号 sele…...

全面的网络流量监控

流量监控指的是对数据流进行的监控&#xff0c;通常包括出数据、入数据的速度、总流量。通过网络流量监控&#xff0c;组织可以确保只有业务关键型流量通过网络传输&#xff0c;并限制不需要的网络流量&#xff0c;从而提高网络效率&#xff0c;又可以防止停机、减少 MTTR、帮助…...

探索网络爬虫:技术演进与学习之路

网络爬虫及IP代理池 前言爬虫技术的演进最新的爬虫技术爬虫技术学习路线 前言 在信息时代&#xff0c;网络爬虫技术作为获取和处理网络数据的重要手段&#xff0c;已经成为数据科学、机器学习和许多商业应用的基石。从简单的HTML页面抓取到复杂的动态内容采集&#xff0c;爬虫…...

目标检测——色素性皮肤病数据集

一、重要性及意义 首先&#xff0c;色素性皮肤病变是一类常见的皮肤疾病&#xff0c;其发病率有逐年增高的趋势。这些病变可能由遗传或环境因素导致黑素细胞生成异常&#xff0c;如黑色素瘤等。黑色素瘤具有极高的恶性率和致死率&#xff0c;而且恶化可能性大&#xff0c;容易…...

Unity3D 打空包与远程资源更新详解

前言 在游戏开发过程中&#xff0c;打包和远程资源更新是非常重要的步骤&#xff0c;本文将详细介绍Unity3D中如何进行打空包和远程资源更新。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀&#xff01; 一、打空包 …...

32单片机入门持续更新中

配套资料为野火霸道V2 初识 STM32 4.1 什么是 STM32 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起 来理解&#xff0c;STM32 就是指 ST 公司开发的 32 位微控制器。在如今…...

蓝桥杯 每天2题 day6

碎碎念&#xff1a;哇咔咔 要不是中间缺勤一天就圆满day7了&#xff01;最后一晚上&#xff01;写题复习哇咔咔 唉&#xff0c;睡了一觉就看不下去了&#xff0c;&#xff0c;&#xff0c;看看之前的笔记洗洗睡觉&#xff0c;&#xff0c;&#xff0c; 记得打印准考证带好东西…...

Fast-lio2运行时如何显示轨迹线

修改对应设备的.yaml文件&#xff0c;以velodyne为例&#xff1a; 将 path_en参数改为true即可&#xff0c;运行其他设备&#xff0c;修改对应的参数...

2022年全国青少年信息素养大赛Python国赛第1-10题,含解析答案

01-分苹果 把一堆苹果分给n个小朋友,每个人拿到的苹果数量不同,并且每个人至少有一个。任意输入小朋友的数量n,问这堆苹果至少应该有多少个。输入描述:任意输入小朋友的数量n输出描述:输出这堆苹果至少应该有多少个 样例输入: 3 样例输出: 6 注意: input()内不添…...

python学习笔记——文件操作

1. 文件操作**** 1.1. open()函数**** 参数&#xff1a; 1. File&#xff1a;需要打开的文件 2. Mode&#xff1a;读、写、读写 (1) r&#xff1a;只读 (2) w&#xff1a;只写文件&#xff08;覆盖&#xff09; (3) a&#xff1a;只写文件&#xff08;追加&#xff09; …...

滑动窗口用法

文章目录 1. 长度最小的子数组&#xff08;模板&#xff09;2. 无重复字符的最长字串3. 最小覆盖字串4. 加油站5. 替换字串得到平衡字符串 1. 长度最小的子数组&#xff08;模板&#xff09; 题目分析 直接用步骤分析示例1&#xff0c;[]表示窗口&#xff0c;min_length表示满…...

智慧港口整体解决方案(一)

前言 智慧港口建设对创新驱动、转型发展具有重要推动作用加快推动第五代港口发展进程,成为当今港口转变发展方式、 提升企业综合竞争力的主潮流。智慧港口是港口未来发展主要方向 物联网、云计算技术发展智慧港口是物联网、移动互联网、云计算、人工智能等高新 技术与港口功能的…...

ubuntu如何限制系统日志大小?

ubuntu中的系统日志文件件如不及时清理&#xff0c;时间长了会占用硬盘的空间&#xff0c;如下所示&#xff1a; /var/log/journal/4321d62ad63d44cbbc4dff3b6e282b26/system9f5b4d5081d24b319f8b4677cf673a97-0000000000184ca6-00061412655a5a79.journal: 128M /var/log/journ…...

【Linux】线程概念及线程互斥

目录 线程概念 线程优点 线程缺点 线程异常 线程系统编程接口 线程创建及终止 线程等待 使用线程系统接口封装一个小型的C线程库并实现一个抢票逻辑 线程互斥 互斥量的接口 线程互斥实现原理 使用系统加锁接口封装LockGuard 实现自动化加锁 线程安全和可重入函数 …...

测试需求分析

测试需求是什么&#xff1f; --需求文档 测试需求主要解决**“测什么”的问题&#xff0c;一般来自需求规格说明书中原始需求 测试需求应全部覆盖已定义的业务流程&#xff0c;以及功能和非功能**方面的需求 功能&#xff1a;基本用户需求–优先 非功能&#xff1a;界面&#…...

Qt 翻译工具:使用 tr() 函数实现多语言支持

引言 在开发跨平台应用程序时&#xff0c;支持多语言是一个常见需求。Qt 提供了一套完整的国际化工具&#xff0c;帮助开发者轻松实现应用程序的本地化。本文将介绍如何在 Qt 中使用 tr() 函数进行翻译&#xff0c;并总结一些常见的困难和解决方法。 使用 tr() 函数进行翻译 …...

使用 kustomize 对 kubernetes 对象进行声明式管理

补丁实战 策略合并补丁 基准文件&#xff1a;/test/bases/deploy.yml apiVersion: apps/v1 kind: Deployment metadata:namespace: sharkname: my-nginx spec:selector:matchLabels:run: my-nginxreplicas: 2template:metadata:labels:run: my-nginxspec:containers:- name:…...

网站建设及域名/如何写软文推广产品

根据SqlServer2000 Analysis Services提供的帮助材料展开&#xff0c;略作说明并且根据各个函数的侧重点编写相应的MDX&#xff1b;这些成果主要源于我的老大浩哥&#xff0c;再次向他表示感谢。数组函数 函数 描述 SetToArray 将一个或多个集合转换为数组&#xff0c;以用于…...

西华县住房和城乡建设局网站/网赌怎么推广拉客户

SQL存储过程基础语法之一 CREATE PROCEDURE创建存储过程&#xff0c;存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用&#xff0c;或在一个会话中临时使用&#xff08;局部临时过程&#xff09;&#xff0c;或在所有…...

网站改版 合同/沈阳百度seo排名优化软件

#正则表达式select * from employee where name like jin%;select * from employee where name regexp ^jin;select * from employee where name regexp ^jin.*(g|n)$; 转载于:https://www.cnblogs.com/FlFtFw/p/9544251.html...

微信小程序怎么做网站/宁德市住房和城乡建设局

2019独角兽企业重金招聘Python工程师标准>>> 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显…...

网站建设jsp/seo是什么专业

今天和大家分享10个批量快速处理PPT 的技巧&#xff01;没错&#xff01;就是你想的“批发”处理~话不多说&#xff0c;赶紧一起来学习吧~一、批量提取PPT模板里的元素 在制作PPT的过程中&#xff0c;经常会遇到自己喜欢的模板&#xff01;可真正喜欢的是里面的素材&#xff0c…...

wordpress1.0/seo站长之家

https://blog.csdn.net/guihenao4010/article/details/85255064...