24.5.5(离散化+树状数组,线段树)

星期一:

dp题单 背包 第四题 混可乐                                     cf传送门

思路:条件可演化为每种可乐值为 ai-n,选最少的可乐使总和为0(具体可看官方题解

          到这会发现背包并不适合了,其实这是道bfs伪装的背包,和牛客周赛39 D很像 牛客传送门

代码如下:

ll n;
int k;
int dis[2020];
void solve(){
	cin >> n >> k;
	memset(dis,-1,sizeof dis);
	queue<int>qu;
	map<int,int>mp;
	for(int i=1;i<=k;i++){
		int x; cin >>x;
		x=x-n+1000;
		if(dis[x]==-1) dis[x]=1,qu.push(x),mp[x]=1;
	}
	while(!qu.empty()){
		int t=qu.front(); qu.pop();
//		for(int i=0;i<=2000;i++){
//			if(i+t-1000<0 || i+t-1000>2000) continue;
//			if(dis[t+i-1000]!=-1 || dis[i]!=1) continue;
//			dis[t+i-1000]=dis[t]+1;
//			qu.push(t+i-1000);
//		}
		for(auto [x,y]:mp){
			if(x+t-1000<0 || x+t-1000>2000) continue;   //x和t都经过了一次偏移
			if(dis[x+t-1000]!=-1) continue;             //所以加起来后需要减一次偏移量
			dis[x+t-1000]=dis[t]+1;                //新到达的点
			qu.push(x+t-1000);
		}
	}
	if(dis[1000]==-1) cout << "-1\n";
	else cout << dis[1000] << "\n";
}

晚cf,C是dp没出

星期二:

cf edu 165 补C                                                     cf传送门

思路:贪心证伪后用dp考虑,状态设计及转移大致如下

这里提一点卡我很久很久的地方,第一重循环 i 需要从0开始枚举

因为状态转移并不是由 i之前推到 i,而是从 i往后面推, i从1开始的话,有些状态无法转移出来,这点在以后也需要注意

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
int k;
int a[N];
ll dp[N][11];
void solve(){
	cin >> n >> k;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		dp[i][0]=dp[i-1][0]+a[i];
		for(int j=1;j<=k;j++) dp[i][j]=1e18;
	}
	for(int i=0;i<=n;i++){
		int mi=a[i+1];
		for(int j=0;j<=k;j++){
			mi=min(a[i+j+1],mi);
			for(int o=0;o+j<=k;o++){
				dp[i+j+1][o+j]=min(dp[i][o]+1ll*mi*(j+1),dp[i+j+1][o+j]);
			}
		}
	}
	cout << dp[n][k] << "\n";
}

晚cf round942 div2,最后十分钟出C,又被permutation拿下了

星期三:

上午vp牛客周赛28

E                                                                        牛客传送门

思路:三个连续数的和为偶数,组合形式有限,分别为偶偶偶,偶奇奇,奇偶奇,奇奇偶,数组最先三个数的奇偶性确定后,整个数组的每个数的奇偶性都确定了

算出k以内的数能选的奇数和偶数个数,n个位置中奇数和偶数各有多少个,乘法原理和快速幂计算

代码如下:

const int mod=1e9+7;
ll n;
ll k;
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 >> k;
	int num0=0,num1=0;
	num0=k/2,num1=k/2+(k&1);
	ll ans=qpow(num0,n);                    //全偶
	int n0=n/3,n1=n/3*2;
	if(n%3==0) ans+=3*qpow(num1,n1)*qpow(num0,n0)%mod,ans%=mod;
	if(n%3==1)
        ans+=2*qpow(num1,n1+1)*qpow(num0,n0)%mod,ans+=qpow(num1,n1)*qpow(num0,n0+1),ans%=mod;
	if(n%3==2)
        ans+=2*qpow(num1,n1+1)*qpow(num0,n0+1)%mod,ans+=qpow(num1,n1+2)*qpow(num0,n0),ans%=mod;
	cout << ans;
}

下午牛客五一 1,很难,看情况补题

周赛28 F题离散化+树状数组,先复习下树状数组,刚好趁五一假期学点数据结构

洛谷树状数组板子题其一(单点修改,区间查询            洛谷传送门

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
ll m;
ll a[N];
ll t[N];
int lowbit(int x){return x&-x;}
void ad(int x,int v){
	for(int i=x;i<=n;i+=lowbit(i)) t[i]+=v;
}
ll ask(int x){
	ll res=0;
	for(int i=x;i;i-=lowbit(i)) res+=t[i];
	return res;
}
void solve(){
	cin >> n >> m;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		ad(i,a[i]);           //nlogn构造树状数组
	}
	while(m--){
		int op,x,y; cin >> op >> x >> y;
		if(op==1) ad(x,y);
		else cout << ask(y)-ask(x-1) << "\n";
	}
}

树状数组板子题其二(区间修改,单点查询                   洛谷传送门

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
ll m;
ll a[N];
ll t[N];
int lowbit(int x){return x&-x;}
void ad(int x,int v){
	for(int i=x;i<=n;i+=lowbit(i)) t[i]+=v;
}
ll ask(int x){
	ll res=0;
	for(int i=x;i;i-=lowbit(i)) res+=t[i];
	return res;
}
void solve(){
	cin >> n >> m;
	for(int i=1;i<=n;i++) cin >> a[i];
	while(m--){
		int op,x; cin >> op >> x;
		if(op==1){
			int y,k; cin >> y >> k;
			ad(x,k); ad(y+1,-k);            //差分思想,x到y这段区间加上了k
		}else cout << a[x]+ask(x) << "\n";  //t数组维护的是修改值
	}
}

星期四:

补牛客周赛28 F                                                   牛客传送门

思路:因为前缀和不再有单调性,所以easy版本二分和双指针的做法失效,用离散化+树状数组

区间元素和大于等于k,即 a【l-1】<= a【r】- k,我们可以枚举右端点,然后查询有多少个左端点小于等于这个值,枚举后将此右端点加入左端点的集合,这里用权值树状数组来实现

权值树状数组,单点修改,区间查询,修改的意义是值为x的数多了1,查询的意义即为<= x的值个数,类似于用树状数组维护桶数组

不过由于值的范围能到达1e14,需要离散化处理,即按照原值的大小关系映射为紧密连续的值,这里需要用到的值不仅有 a【i】,还有 a【i】- k 用于查询,所以离散化后数据范围最多 2e5

最后一个需要注意的点是,add函数的 i <= n,需改为 i <= 离散化后映射的最大值,因为这才是  离散化后权值树的最大下标

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
ll a[N],k;
ll t[N],cnt;
map<ll,int>to;
int lowbit(int x){return x&-x;}
void add(int x,int v){
	for(int i=x;i<=cnt;i+=lowbit(i)) t[i]+=v;   //注意下标并不为 n !!!
}
ll ask(int x){
	ll res=0;
	for(int i=x;i;i-=lowbit(i)) res+=t[i];
	return res;
}
void solve(){
	cin >> n >> k;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		a[i]+=a[i-1];
		to[a[i]]=1,to[a[i]-k]=1;
	}
	to[0]=1;
	for(auto &[x,y]:to) y=++cnt;              //离散化处理
	ll ans=0;
	add(to[0],1);                             //因为查询的是a[l-1],a[0]=0的值先加上
	for(int i=1;i<=n;i++){
		ans+=ask(to[a[i]-k]);                 //查询
		add(to[a[i]],1);                      //权值+1
	}
	cout << ans;
}

牛客五一集训 1 补B(斐波那契字符串                             牛客传送门

思路:n 比较小,可以递归求解,f 数组储存此字符串的长度

代码如下:

ll n;
ll f[550];
const ll MA=1e12+10;
inline char fnd(int n,ll k){
	if(n==1) return "COFFEE"[k-1];
	if(n==2) return "CHICKEN"[k-1];
	if(k<=f[n-2]) return fnd(n-2,k); //此字符属于第i-2个字符串
	else return fnd(n-1,k-f[n-2]);   //否则属于第i-1个
}
void solve(){
	f[1]=6,f[2]=7;
	for(int i=3;i<=510;i++) f[i]=min(MA,f[i-2]+f[i-1]);
	int t; cin >> t;
	while(t--){
		ll k; cin >> n >> k;
		for(ll i=k;i<min(k+10,f[n]+1);i++) cout << fnd(n,i);//i注意开ll
		cout << "\n";
	}
}

其他题都不是很好补,先放会

准备补牛客寒假集训营2的两道线段树题,过程可能会比较漫长,期望在4号内完成

晚cf round 943,B题翻车,题数4题

星期五:

先敲个线段树板子,复习下

代码如下:(区间修改,区间查询

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
#define lc p<<1
#define rc p<<1|1
int m;
struct nod{
	ll l,r,sum,add;         //左端点,右端点,区间总和,懒标记
}t[N];                      //要开原数组 4倍大小
ll a[N];
void pushup(int p){                          //向上更新
    t[p].sum=t[lc].sum+t[rc].sum;
}
void pushdn(int p){                          //向下更新
	if(!t[p].add) return ;
	t[lc].sum+=(t[lc].r-t[lc].l+1)*t[p].add;
	t[rc].sum+=(t[rc].r-t[rc].l+1)*t[p].add;
	t[lc].add+=t[p].add;
	t[rc].add+=t[p].add;
	t[p].add=0;
}
void bd(int p,int l,int r){
	t[p]={l,r,a[l],0};
	if(l==r) return ;         //叶子节点
	int m=l+r>>1;
	bd(lc,l,m);
	bd(rc,m+1,r);
	pushup(p);
}
ll ask(int p,int x,int y){                        //区间查询
	if(x<=t[p].l && y>=t[p].r) return t[p].sum;   //被查询区间完全覆盖,则直接返回sum
	ll sum=0;
	int m=t[p].l+t[p].r>>1;
	pushdn(p);                                    //向下查前先向下更新
	if(x<=m) sum+=ask(lc,x,y);            //有覆盖到左子节点
	if(y>m) sum+=ask(rc,x,y);             //有覆盖到右子节点
	return sum;
}
void updt(int p,int x,int y,int k){
	if(x<=t[p].l && y>=t[p].r){
		t[p].sum+=(t[p].r-t[p].l+1)*k;
		t[p].add+=k;
		return ;                        //打上懒标记,直接返回
	}
	int m=t[p].l+t[p].r>>1;
	pushdn(p);                        //记得先向下更新
	if(x<=m) updt(lc,x,y,k);
	if(y>m) updt(rc,x,y,k);
	pushup(p);                       //再向上更新
}
void solve(){
	cin >> n >> m;
	for(int i=1;i<=n;i++) cin >> a[i];
	bd(1,1,n);
	while(m--){
		int op,x,y; cin >> op >> x >> y;
		if(op==1){
			int k; cin >> k;
			updt(1,x,y,k);
		}else cout << ask(1,x,y) << "\n";
	}
}

补牛客寒假营2  G                                            牛客传送门

思路:线段树维护两个信息,区间最大值( suma【i】- 2*a【i】) 和区间和,但区间和不需要区间修改,区间最大值需要(a【x】变化会使 x到n的前缀和改变),所以一个懒标记给区间最大值用就行

官方题解:【题解】2024牛客寒假算法基础集训营2_牛客网 (nowcoder.com)

还有一个我de了半个下午,需要注意的一点是,求区间信息时,一定要确保  l <= r  !!!

代码如下:(魔改的比较随意

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
#define lc p<<1
#define rc p<<1|1
struct nod{
	ll l,r,sum,add,ma;
}t[N];
ll a[N],suma[N];
void pushup(int p){
	t[p].sum=t[lc].sum+t[rc].sum;
	t[p].ma=max(t[lc].ma,t[rc].ma);
}
void pushdn(int p){
	if(!t[p].add) return ;
	t[lc].ma+=t[p].add;                 //懒标记只需给最大值用
	t[rc].ma+=t[p].add;
	t[lc].add+=t[p].add;
	t[rc].add+=t[p].add;
	t[p].add=0;
}
void bd(int p,int l,int r){
	t[p]={l,r,a[l],0,suma[l]-2*a[l]};
	if(l==r) return ;
	int m=l+r>>1;
	bd(lc,l,m);
	bd(rc,m+1,r);
	pushup(p);
}
ll ask(int p,int x,int y,int op){     //op为1求区间和,为2求区间最大值
	if(x<=t[p].l && y>=t[p].r){
		if(op==1) return t[p].sum;
		else return t[p].ma;
	}
	ll res=0;
	int m=t[p].l+t[p].r>>1;
	pushdn(p);                              //记得向下更新
	if(op==1){
		res=0;
		if(x<=m) res+=ask(lc,x,y,1);
		if(y>m) res+=ask(rc,x,y,1);
	}else{
		res=-1e18;
		if(x<=m) res=max(ask(lc,x,y,2),res);
		if(y>m) res=max(ask(rc,x,y,2),res);
	}
	return res;
}
void updt(int p,int x,int y,int k,int op){ //op为1改区间最大值,为2改区间和(单点修改)
	if(x<=t[p].l && y>=t[p].r){
		if(op==1){
			t[p].ma+=k;
			t[p].add+=k;
		}else t[p].sum=k;
		return ;
	}
	int m=t[p].l+t[p].r>>1;
	pushdn(p);
	if(x<=m) updt(lc,x,y,k,op);
	if(y>m) updt(rc,x,y,k,op);
	pushup(p);
}
void solve(){
	int q; cin >> n >> q;
	for(int i=1;i<=n;i++){
		cin >> a[i];
		suma[i]=suma[i-1]+a[i];
	}
	bd(1,1,n);
	while(q--){
		int op,x,y; cin >> op >> x >> y;
		if(op==1){
			updt(1,x,x,2*a[x]-2*y,1); //将 sum[i]-2*a[x]改为 sum[i]-2*y
			updt(1,x,n,y-a[x],1);     //x-n的区间最大值全减a[x]加y (前缀和改变)
			updt(1,x,x,y,2);
			a[x]=y;
		}else{
//			cout << ask(1,x+1,y,2)-ask(1,1,x-1,1) << "\n";
			ll res=ask(1,x+1,y,2);
			if(x-1>=1) res-=ask(1,1,x-1,1);               // 特判x-1!!!
			cout << res << "\n";
		}
	}
}

星期六:

线段树维护区间最大子段和板子题                                洛谷传送门

代码如下:

const int N=2e6+10,M=210;
const int mod=1e9+7;
ll n;
struct seg_Tree{
	#define lc p<<1
	#define rc p<<1|1
	struct nod{
		int l,r;
		ll sum,maxl,maxr,ma;
	}t[N];
	int ql,qr;                              //查询区间
	nod merge(nod a,nod b){
		nod res;
		res.l=a.l,res.r=b.r;
		res.sum=a.sum+b.sum;;
		res.maxl=max(a.maxl,a.sum+b.maxl);
		res.maxr=max(b.maxr,a.maxr+b.sum);
		res.ma=max({a.maxr+b.maxl,a.ma,b.ma});
		return res;
	}
	void pushup(int p){t[p]=merge(t[lc],t[rc]);}      //向上更新
	void bd(int p,int l,int r){                       //bd里处理输入
		if(l==r){
			t[p]={l,r,0,-0x3f3f3f3f,-0x3f3f3f3f,-0x3f3f3f3f};
			cin >> t[p].sum;
			t[p].maxl=t[p].maxr=t[p].ma=t[p].sum;
			return ;
		}
		int m=l+r>>1;
		bd(lc,l,m);
		bd(rc,m+1,r);
		pushup(p);
	}
	void update(int p,int v){
		if(ql<=t[p].l && qr>=t[p].r){
			t[p].sum=t[p].maxl=t[p].maxr=t[p].ma=v;    //叶子节点的所有信息都要改
			return ;
		}
		int m=t[p].l+t[p].r>>1;
		if(ql<=m) update(lc,v);
		if(qr>m) update(rc,v);
		pushup(p);                        //向上更新
	}
	nod query(int p){
		if(ql<=t[p].l && qr>=t[p].r) return t[p];
		int m=t[p].l+t[p].r>>1;
		if(ql>m) return query(rc);
		if(qr<=m) return query(lc);
		return merge(query(lc),query(rc));
	}
	void updt(int l,int r,int v){
		ql=l;
		qr=r;
//		qop=op;
		update(1,v);
	}
	ll ask(int l,int r){
		ql=l,qr=r;
		return query(1).ma;
	}
	#undef lc
	#undef rc
}tr;
void solve(){
	int m; cin >> n >> m;
	tr.bd(1,1,n);
	while(m--){
		int k,a,b; cin >> k >> a >> b;
		if(k==1){
			if(a>b) swap(a,b);
			cout << tr.ask(a,b) << "\n";
		}else tr.updt(a,a,b);
	}
}

周日:

川大校赛初赛,输

补牛客寒假营2 H                                              牛客传送门

思路:easy版本的贪心失效,在线段树维护区间最大子段和的基础上修改一下

官方题解很详细:【题解】2024牛客寒假算法基础集训营2_牛客网 (nowcoder.com)

代码如下:

const int N=2e6+10,M=210;
const ll INF=0x3f3f3f3f3f3f3f3f;             //必须得开ll
const int mod=1e9+7;
ll n;
struct seg_Tree{
	#define lc p<<1
	#define rc p<<1|1
	struct nod{
		int l,r;
		ll sum,maxr,minl,ansl,ansr,segans,ans;
	}t[N];
	int ql,qr,qop,a[N];
	nod merge(nod a,nod b){
		nod res;
		res.l=a.l,res.r=b.r;
		res.sum=a.sum+b.sum;
		res.maxr=max(b.maxr,a.maxr+b.sum);
		res.minl=min(a.minl,a.sum+b.minl);
		res.ansl=max({a.ansl,a.sum+b.ansl,a.sum-b.minl,a.segans-b.minl});
		res.ansr=max({b.ansr,a.ansr-b.sum,a.maxr-b.sum,a.maxr+b.segans});
		res.segans=max({a.sum-b.sum,a.segans-b.sum,a.sum+b.segans});
		res.ans=max({a.ans,b.ans,a.maxr-b.minl,a.ansr-b.minl,a.maxr+b.ansl});
		return res;
	}
	void pushup(int p){t[p]=merge(t[lc],t[rc]);}
	void bd(int p,int l,int r){
		t[p]={l,r,a[l],-INF,INF,-INF,-INF,-INF,-INF};
		if(l==r){
			t[p].maxr=t[p].minl=t[p].sum;
			return ;
		}
		int m=l+r>>1;
		bd(lc,l,m);
		bd(rc,m+1,r);
		pushup(p);
	}
	void update(int p,int v){
		if(ql<=t[p].l && qr>=t[p].r){
			t[p].maxr=t[p].minl=t[p].sum=v;
			return ;
		}
		int m=t[p].l+t[p].r>>1;
		if(ql<=m) update(lc,v);
		if(qr>m) update(rc,v);
		pushup(p);
	}
	nod query(int p){
		if(ql<=t[p].l && qr>=t[p].r) return t[p];
		int m=t[p].l+t[p].r>>1;
		if(ql>m) return query(rc);
		if(qr<=m) return query(lc);
		return merge(query(lc),query(rc));
	}
	void updt(int l,int r,int v){
		ql=l;
		qr=r;
//		qop=op;
		update(1,v);
	}
	ll ask(int l,int r){
		ql=l,qr=r;
		return query(1).ans;
	}
	#undef lc
	#undef rc
}tr;
void solve(){
	int q; cin >> n >> q;
	for(int i=1;i<=n;i++) cin >> tr.a[i];
	tr.bd(1,1,n);
	while(q--){
		int op,x,y; cin >> op >> x >> y;
		if(op==1) tr.updt(x,x,y);
		else cout << tr.ask(x,y) << "\n";
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络】网络文件共享

目录 一、存储类型 二、FTP文件传输协议 2.1 FTP工作原理 2.2 FTP用户类型 2.3 FTP软件使用 2.3.1 服务端软件vsftpd 2.3.2 客户端软件ftp 2.4 FTP的应用 2.4.1 修改端口号 2.4.2 匿名用户的权限 2.4.3 传输速率 三、NFS 3.1 工作原理 3.2 NFS软件介绍 3.3 NFS配…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容&#xff0c;这篇文章要写什么 二叉树的概念分类&#xff0c;都有哪些二叉树遍历 对一个数据结构&#xff0c;最先入手的都是定义&#xff0c;然后才会有哪些分类&#xff0c;对二叉…

C语言 | Leetcode C语言题解之第70题爬楼梯

题目&#xff1a; 题解&#xff1a; int climbStairs(int n) {double sqrt5 sqrt(5);double fibn pow((1 sqrt5) / 2, n 1) - pow((1 - sqrt5) / 2, n 1);return (int) round(fibn / sqrt5); }

机器人系统ros2-开发实践05-将静态坐标系广播到 tf2(Python)-定义机器人底座与其传感器或非移动部件之间的关系

发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如&#xff0c;最容易推断激光扫描仪中心框架中的激光扫描测量结果。 1. 创建包 首先&#xff0c;我们将创建一个用于本教程和后续教程的包。调用的包learning_tf2_py将依赖于geometry_msgs、pyth…

【负载均衡式在线OJ项目day1】项目结构

一.功能 查看题目列表&#xff0c;在线编程&#xff0c;判题功能&#xff0c;即leetcode的部分功能 二.宏观结构 整个项目是BS模式&#xff0c;客户端是浏览器&#xff0c;和用户交互并向服务器发起请求。 服务端从功能上来说分为两个模块&#xff0c;第一个是OJServer&…

FFmpeg———encode_video(学习)

目录 前言源码函数最终效果 前言 encode_video:实现了对图片使用指定编码进行编码&#xff0c;生成可播放的视频流&#xff0c;编译时出现了一些错误&#xff0c;做了一些调整。 基本流程&#xff1a; 1、获取指定的编码器 2、编码器内存申请 3、编码器上下文内容参数设置 4、…

平平科技工作室-Python-超级玛丽

一.准备图片 放在文件夹取名为images 二.准备一些音频和文字格式 放在文件夹media 三.编写代码 import sys, os sys.path.append(os.getcwd()) # coding:UTF-8 import pygame,sys import os from pygame.locals import* import time pygame.init() # 设置一个长为1250,宽为…

03.配置监控一台服务器主机

配置监控一台服务器主机 安装zabbix-agent rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm配置zabbix-agent,配置的IP地址是zabbix-server的地址&#xff0c;因为要监控这台主机 vim /etc/zabbix/zab…

淘宝线上扭蛋机小程序:推动扭蛋机销量

扭蛋机作为一个新兴的娱乐消费模式&#xff0c;能够带给消费者“盲盒式”的消费乐趣&#xff0c;正在快速发展中。消费者通过投币、扫码支付等&#xff0c;在机器上扭下按钮就可以随机获得一个扭蛋商品&#xff0c;这些商品也包括动漫衍生周边、IP主题商品等&#xff0c;种类多…

先电2.4的openstack搭建

先电2.4版本的openstack&#xff0c;前期虚拟机部署参考上一篇2.2版本&#xff0c;基本步骤是一样的&#xff0c;准备两个镜像文件CentOS-7.5-x86_64-DVD-1804.iso&#xff0c;XianDian-IaaS-V2.4.iso [rootcontroller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777…

新手开抖店多久可以出单?做好这两点!七天必出单!

哈喽~我是电商月月 很多新手开抖店长时间不出单&#xff0c;觉得不正常&#xff0c;害怕新手根本做不起来店&#xff0c;就会搜索&#xff1a;新手开抖店多久可以出单&#xff1f; 新手开店&#xff0c;合理运营的话&#xff0c;七天里肯定是能出几单的&#xff0c;但没做好的…

AI新突破:多标签预测技术助力语言模型提速3倍

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;多标签预测的新视角 在人工智能领域&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;中&#xff0c;预测模型的训练方法一直在…

Android(一)

坏境 java版本 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 进入安卓官网下载 勾选协议 next 如果本地有设置文件&#xff0c;选择Config or installation folder 如果本地没有设置文件&#xff0c;选择Do not import settings 同意两个协议 耐…

Android 14 init进程解析

前言 当bootloader启动后&#xff0c;启动kernel&#xff0c;kernel启动完后&#xff0c;在用户空间启动init进程&#xff0c;再通过init进程&#xff0c;来读取init.rc中的相关配置&#xff0c;从而来启动其他相关进程以及其他操作。 init进程启动主要分为两个阶段&#xff1…

张大哥笔记:卖盗版网课,获利 100 万被抓

这几天刷视频&#xff0c;看到一个新闻&#xff0c;某大学生卖盗版网课&#xff0c;把别人2000多正版网课&#xff0c;以做活动名义售卖20元&#xff0c;获利100多万被抓。 下方图片来自&#xff1a;极目新闻 卖这种盗版网课&#xff0c;门槛低&#xff0c;成本低&#xff0c;…

win中python中OpenCV使用cv2.imshow()报错的解决办法

1. 问题 cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu o…

Python实现SMA黏菌优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 黏菌优化算法&#xff08;Slime mould algorithm&#xff0c;SMA&#xff09;由Li等于2020年提出&…

汉之名将韩信

与英勇霸气的项羽相比&#xff0c;刘邦或许显得无能猥琐&#xff0c;但刘邦深知自己的不足&#xff0c;愿意放权给跟随他的人&#xff0c;让他们发挥才能。正是这种谦逊和智慧&#xff0c;最终让刘邦赢得了天下。 帷帐之间筹谋&#xff0c;千里之外决胜&#xff0c;我之子房无…

计算机服务器中了halo勒索病毒怎么处理,halo勒索病毒解密流程步骤

在网络技术飞速发展的时代&#xff0c;越来越多的企业走向了数字化办公模式&#xff0c;利用网络可以开展各项工作业务&#xff0c;网络也为企业的生产运营提供了极大便利&#xff0c;但网络是一把双刃剑&#xff0c;从网络出现就一直存在网络数据安全问题&#xff0c;这也是众…

Essential Input and Output

How to read data from the keyboard? How to format data for output on the screen? How to deal with character output? 一、Input from the Keyboard the scanf_s() function that is the safe version of scanf() int scanf_s(const char * restrict format, ... );…