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

树形DP杂题

对老师布置的题目稍微记录一下吧
也算对树形 D P DP DP 的巩固

T1 Ostap and Tree

题目传送门

由于有 距离 k 距离k 距离k 的限制,设计二维 d p dp dp

设计状态:

f i , j : i 的子树内,离 i 最近的染色点与 i 距离为 j 且若 j < = k , 那么 i 的子树满足题目限制的方案数 f_{i,j}:i的子树内 ,离i最近的染色点与i距离为j\\ 且若j<=k,那么i的子树满足题目限制的方案数 fi,j:i的子树内,离i最近的染色点与i距离为j且若j<=k,那么i的子树满足题目限制的方案数

状态转移:

考虑父节点 u u u 与 子节点 v v v 的合并
若枚举 i , j i,j i,j ,那么考虑 f u , i f_{u,i} fu,i f v , j f_{v,j} fv,j 可以转移到哪里
我们有 :
1.当 i + j ≤ k ∗ 2 i+j\leq k*2 i+jk2
\quad f u , min ⁡ ( i , j ) ← f u , i ∗ f v , j f_{u,\min(i,j)} \gets f_{u,i} *f_{v,j} fu,min(i,j)fu,ifv,j
2.当 i + j > k ∗ 2 i+j> k*2 i+j>k2
\quad f u , max ⁡ ( i , j ) ← f u , i ∗ f v , j f_{u,\max(i,j)} \gets f_{u,i} *f_{v,j} fu,max(i,j)fu,ifv,j
只能说都是状态设计的功劳

#include <algorithm>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=2e2+7,K=55 , INF=1e9;
const ll mod=1e9+7;
int n,k;
ll f[N][K],ans;
vector<int> G[N];
void dfs(int u,int fa) {f[u][0]=f[u][k+1]=1;for(int v:G[u]) {if(v== fa) continue; dfs(v,u);vector<ll> tmp(k*2+5) ;for(int i=0;i<=k<<1;i++) for(int j=0;j<=k<<1;j++) {if(i+j<=(k<<1))tmp[min(i,j+1)]=(tmp[min(i,j+1)]+f[u][i]*f[v][j]%mod)%mod;else tmp[max(i,j+1)]=(tmp[max(i,j+1)]+f[u][i]*f[v][j]%mod) %mod;}for(int i=0;i<=k<<1;i++) f[u][i]=tmp[i];}
}
int main() {scanf("%d%d",&n,&k);for(int i=1,u,v;i<n;i++) {scanf("%d%d",&u,&v);G[u].push_back(v),G[v].push_back(u);}dfs(1,0);for(int i=0;i<=k;i++) ans=(ans+f[1][i])%mod;printf("%lld\n",ans);
}

T2 实验比较

题目传送门

显然 ,根据 < < < 关系建边, = = = 缩点
若没有 = = = ,那么这将是一道十分友好的题,稍微运用一下组合数学即可,状态也会十分简单
多设一维限制 = = = 等号即可,注意判环的无解情况

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
inline int read() {int res = 0; bool bo = 0; char c;while (((c = getchar()) < '0' || c > '9') && c != '-');if (c == '-') bo = 1; else res = c - 48;while ((c = getchar()) >= '0' && c <= '9')res = (res << 3) + (res << 1) + (c - 48);return bo ? ~res + 1 : res;
}
inline char get() {char c; while ((c = getchar()) != '<' && c != '='); return c;
}
const int N = 135, M = 265, ZZQ = 1e9 + 7;
int n, m, X[N], Y[N], fa[N], ecnt, nxt[M], adj[N], go[M], in[N], cnt[N],
f[N][N], sze[N], C[N][N], g[N];
bool eq[N], its[N];
void init() {int i, j; for (i = 0; i <= 120; i++) C[i][0] = 1;for (i = 1; i <= 120; i++) for (j = 1; j <= i; j++)C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % ZZQ;
}
void add_edge(int u, int v) {nxt[++ecnt] = adj[u]; adj[u] = ecnt; go[ecnt] = v;nxt[++ecnt] = adj[v]; adj[v] = ecnt; go[ecnt] = u;
}
int cx(int x) {if (fa[x] != x) fa[x] = cx(fa[x]);return fa[x];
}
bool zm(int x, int y) {int ix = cx(x), iy = cx(y);if (ix != iy) fa[iy] = ix;else return 1;return 0;
}
void dfs(int u, int fu) {int i, j, k; sze[u] = f[u][1] = 1;for (int e = adj[u], v; e; e = nxt[e]) {if ((v = go[e]) == fu) continue; dfs(v, u);for (i = 1; i <= n; i++) g[i] = 0;for (i = 1; i <= sze[u] + sze[v]; i++) for (j = 1; j <= sze[u]; j++)for (k = 1; k <= sze[v]; k++) {int x = k - i + j; if (x < 0) continue;(g[i] += 1ll * f[u][j] * f[v][k] % ZZQ *C[i - 1][j - 1] % ZZQ * C[j - 1][x] % ZZQ) %= ZZQ;}for (i = 1; i <= sze[u] + sze[v]; i++) f[u][i] = g[i];sze[u] += sze[v]; }
}
int main() {int i; n = read(); m = read(); init();for (i = 1; i <= n; i++) fa[i] = i;for (i = 1; i <= m; i++) X[i] = read(),eq[i] = get() == '=', Y[i] = read();for (i = 1; i <= m; i++) if (eq[i]) zm(X[i], Y[i]);for (i = 1; i <= n; i++) its[in[i] = cx(i)] = 1;for (i = 1; i <= n; i++) fa[i] = i;for (i = 1; i <= m; i++)if (!eq[i]) {add_edge(in[X[i]], in[Y[i]]); cnt[in[Y[i]]]++;if (zm(in[X[i]], in[Y[i]])) return printf("0\n"), 0;}for (i = 1; i <= n; i++) if (its[i] && !cnt[i]) add_edge(n + 1, i);int ans = 0; dfs(n + 1, 0); for (i = 1; i <= sze[n + 1]; i++)ans = (ans + f[n + 1][i]) % ZZQ; cout << ans << endl;return 0;
}

T3 podjela

题目传送门

对题目中的限制,第二维开不下…
观察到答案的数量级应该是与 n n n 同阶
严谨的证明一下就是 a n s ≤ n − 1 ans\le n-1 ansn1
因为 n − 1 n-1 n1 次后我们一定可以将每一条边遍历到,合理规划方案即可满足条件
那么就有了状态,将答案放进状态中,最后统计合法的最值即可

设计状态:

f i , j : i 的子树中,操作 j 次后,除 i 的节点都合法, i 最多能获得的钱 f_{i,j} :i的子树中,操作j次后,除i的节点都合法,i最多能获得的钱 fi,j:i的子树中,操作j次后,除i的节点都合法,i最多能获得的钱
注意,可能会欠款,也就是 f i , j < 0 f_{i,j}<0 fi,j<0

状态转移:

转移是个树上背包
f u , i + j + 1 ← f u , i + f v , j ( v 的钱转移到 i 上 ) 若 v 不欠款,即 f v , j ≥ 0 , 就有 f u , i + j ← f u , i f_{u,i+j+1}\gets f_{u,i}+f_{v,j}(v的钱转移到i上)\\ 若v不欠款,即f_{v,j}\ge0,就有f_{u,i+j}\gets f_{u,i} fu,i+j+1fu,i+fv,j(v的钱转移到i)v不欠款,即fv,j0,就有fu,i+jfu,i

a n s ans ans就是第一个 f 1 , i ≥ 0 f_{1,i}\ge0 f1,i0时取i即可

#include <algorithm>
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
typedef long long ll;
const int N=2e3+7,INF=1e9;
int n,X;
int v[N],f[N][N],sz[N],g[N];
vector<int>G[N];
void dfs(int u,int fa) {for(int i=0;i<=n;i++) f[u][i]=-INF;f[u][0]=X-v[u],sz[u]=1;for(int v:G[u]) {if(v==fa) continue;dfs(v,u); sz[u]+=sz[v];for(int i=0;i<=sz[u]+1;i++) g[i]=-INF;for(int i=0;i<=sz[u]-sz[v];i++) {for(int j=0;j<=sz[v];j++) {g[i+j+1]=max(g[i+j+1],f[u][i]+f[v][j]);if(f[v][j]>=0) g[i+j]=max(g[i+j],f[u][i]);}}for(int i=0;i<=sz[u]+1;i++) f[u][i]=g[i];}
}
int main(){scanf("%d%d",&n,&X);for(int i=1;i<=n;i++) scanf("%d",&v[i]);for(int i=1,u,v;i<n;i++) {scanf("%d%d",&u,&v);G[u].push_back(v),G[v].push_back(u);}dfs(1,0);for(int i=0;i<n;i++) if(f[1][i]>=0) return printf("%d\n",i),0;
}

T4 赛道修建

题目传送门

  • 二分答案 + 贪心 二分答案+贪心 二分答案+贪心 即可,贪心时用好 s e t set set 即可
    据说可以用 v e c t o r vector vector 维护,不过又不卡 s e t set set 不用白不用
    代码虚长
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
const int N=5e4+7;
int n,m,head[N],tot,ans,up;
struct node{ int to,next,w; }e[N<<1];multiset<int> s[N];
multiset<int>::iterator it;inline int read(){register int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return (f==1)?x:-x;
}void Add(int x,int y,int w){e[++tot]=(node) {y,head[x],w};head[x]=tot;
}int Dfs(int x,int fa,int k){s[x].clear();for(int i=head[x],y,val;i;i=e[i].next){y=e[i].to; if(y==fa) continue;val=Dfs(y,x,k)+e[i].w;if(val>=k) ans++;else s[x].insert(val);}int Max=0;while(!s[x].empty()){if(s[x].size()==1) return max(Max,*s[x].begin());it=s[x].lower_bound(k-*s[x].begin());if(it==s[x].begin()&&s[x].count(*it)==1) it++;if(it==s[x].end()){Max=max(Max,*s[x].begin());s[x].erase(s[x].begin());}else {ans++;s[x].erase(s[x].find(*it));s[x].erase(s[x].find(*s[x].begin()));}}return Max;
}int Check(int k){ans=0;Dfs(1,0,k);return (ans>=m);
}int Dfs1(int x,int fa){int sum1=0,sum2=0;for(int i=head[x],y;i;i=e[i].next){y=e[i].to; if(y==fa) continue;sum2=max(sum2,Dfs1(y,x)+e[i].w);if(sum1<sum2) swap(sum1,sum2);//最大与次大}up=max(up,sum1+sum2);return sum1;
}int main(){n=read(),m=read();for(int i=1,x,y,w;i<n;i++){x=read(),y=read(),w=read();Add(x,y,w);Add(y,x,w);}Dfs1(1,0);int l=1,r=up,mid;while(l<r){mid=(l+r+1)>>1;if(Check(mid)) l=mid;else r=mid-1;}printf("%d\n",l);
}

T5 Aerial Tramway

题目传送门

很有意思的一题,直入主题
引用别人的话:

我们首先发觉每个可以连的区间都是不相交的,只有相邻和包含关系,所以是 O ( n ) O(n) O(n) 个(其实最多只有 n 2 \frac{n}{2} 2n 个)。然后这段区间跟相邻的是没有关系的。跟这段区间有关的只有包含的区间。所以我们可以递归的考虑这个问题。

一段区间与其包含的区间之间建边

设计状态:

f i , j , k : i 的子树分配了 j 个缆车,子树内被覆盖最多的点被覆盖了 k 次 f_{i,j,k}:i的子树分配了j个缆车,子树内被覆盖最多的点被覆盖了k次 fi,j,k:i的子树分配了j个缆车,子树内被覆盖最多的点被覆盖了k

状态转移

是一个经典的树上背包,注意 前缀 max ⁡ 前缀\max 前缀max 优化,单次求解为 O ( n 2 ) O(n^2) O(n2)
总的复杂度为 O ( T n 2 ) O(Tn^2) O(Tn2)

#include <algorithm>
#include <iostream>
using namespace std;
const int N=2e2+7,INF=1e9;
int n,m,k,ca,cb,ans;
int x[N],y[N],b[N],g[N],nxt[N],sz[N],f[N][N][10],t[N][10];
struct st {int l,r,w;} a[N];
inline void up(int&a,int b){if(a<b)a=b;}
void dfs(int x){for(int a=0;a<=m;a++) for(int b=0;b<=k;b++)     f[x][a][b]=-INF;f[x][0][0]=0;for(int i=g[x];i;i=nxt[i]){dfs(i);for(int a=min(sz[x]+sz[i],m);i>=m;i--) for(int b=0;b<=k;b++) t[a][b]=f[x][a][b];for(int a=min(sz[x],m);~a;a--) for(int c=min(sz[i],m-a);~c;c--) {int t1=-INF,t2=-INF;for(int b=0;b<=k;b++) {up(t1,f[i][c][b]);       up(t2,f[x][a][b]);up(t[a+c][b],max(f[x][a][b]+t1,f[i][c][b]+t2));}}sz[x]+=sz[i];for(int a=min(sz[x],m);a>=m;a--) for(int b=0;b<=k;b++) f[x][a][b]=t[a][b];}if(!x)return;sz[x]++;for(int a=min(sz[x],m-1);~a;a--) for(int b=k-1;~b;b--) up(f[x][a+1][b+1],f[x][a][b]+::a[x].w);
}
int main(){int T;while(~scanf("%d%d%d",&n,&m,&k)){k--;for(int i=1;i<=n;i++) scanf("%d%d",&x[i],&y[i]);for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(y[i]==y[j]){bool flag=1;for(int k=i+1;k<j;k++) if(y[k]>=y[i]) {flag=0; break;}if(flag){if(i+1==j) b[++cb]=x[j]-x[i];else a[++ca]=(st){i+1,j-1,x[j]-x[i]};}}sort(b+1,b+cb+1,greater<int>());for(int i=2;i<=cb;i++) b[i]+=b[i-1];for(int i=1,j=0;i<=ca;i++){for(int k=1;k<=ca;k++)if(a[k].l<a[i].l&&a[k].r>a[i].r && (!j||a[k].w<a[j].w))j=k;nxt[i]=g[j],g[j]=i;}dfs(0);ans=-1;for(int i=m-cb;i<=m;i++) for(int j=0;j<=k;j++)up(ans,f[0][i][j]+b[m-i]);printf("Case %d: %d\n",++T,ans);for(int i=0;i<=ca;i++) g[i]=sz[i]=0;ca=cb=0;}
}

T6 Mousetrap

题目传送门

选好根,就是老鼠所在的位置 t t t
观察好性质,老鼠一进入某个子树就一定会无路可走。
考虑完情况,老鼠往根的情况二分答案
详细的题解 贴个链接别人的Blog

再贴个自己的代码:

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
const int N=1e6+7,INF=1e9;
int n,t,m,l,r,ans;
int sum[N],f[N],fa[N];
vector<int> G[N];
void dfs(int u,int ff) {int MAX=0,_MAX=0,cnt=G[u].size()-1; fa[u]=ff;if(u!=t) sum[u]=sum[ff]+cnt-1+(u==m);for(int v:G[u]) if(v!=ff) {dfs(v,u); if(f[v]>=MAX) _MAX=MAX,MAX=f[v];else if(f[v]>_MAX) _MAX=f[v];}f[u]=_MAX+cnt;
}
bool check(int k) {int cnt=1;for(int u=m,tu=u;u!=t;u=fa[u],cnt++) {int x=0;for(int v:G[u]) if(v!=fa[u] && v!=tu && f[v]+sum[u]>k) {if(!cnt) return 0;x++,cnt--;}k-=x,tu=u;}return k>=0;
}
int main(){scanf("%d%d%d",&n,&t,&m); r=n<<1;for(int i=1,u,v;i<n;i++) {scanf("%d%d",&u,&v);G[u].push_back(v),G[v].push_back(u);}dfs(t,0);f[t]=0;// for(int i=1;i<=n;i++) printf("%d: %d\n",i,f[i]); puts("");// for(int i=1;i<=n;i++) printf("%d: %d\n",i,sum[i]);puts("");while (l<=r) {int mid=l+r>>1;if(check(mid)) ans=mid,r=mid-1;else l=mid+1;}printf("%d\n",ans);
}

其实还有三道题,但我太懒了,就不写了贴一题目链接
[PA2015] Rozstaw szyn
[POI2017] Sabotaż
[CEOI2017] Chase

相关文章:

树形DP杂题

引 对老师布置的题目稍微记录一下吧 也算对树形 D P DP DP 的巩固 T1 Ostap and Tree 题目传送门 由于有 距离 k 距离k 距离k 的限制&#xff0c;设计二维 d p dp dp 设计状态&#xff1a; f i , j : i 的子树内&#xff0c;离 i 最近的染色点与 i 距离为 j 且若 j <…...

Webpack使用plugin插件自动在打包目录生成html文件

我们使用html-webpack-plugin插件可以自动在打包代码目录生成html文件 使用步骤&#xff1a; 一、安装依赖 在控制台中输入如下代码&#xff1a; npm i -D html-webpack-plugin 二、在webpack.config.js中配置插件 const HTMLPlugin require("html-webpack-plugin&q…...

图像处理与计算机视觉--第一章-计算机视觉简介-10问

第一章-计算机视觉简介-10问 1.CV与AI的关系是什么? CV(Computer Vision)是Al的子领域&#xff0c;它致力于使计算机能够理解和解释图像和数据&#xff0c;CV借助AI技术&#xff0c;比如深度学习/机器学习&#xff0c;实现目标识别,分析和处理任务。AI提供了CV所需要的算法…...

LeetCode 80. 删除有序数组中的重复项 II

文章目录 一、题目二、Java 题解 一、题目 给你一个有序数组 nums&#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用…...

【前端面试题】浏览器面试题

文章目录 前言一、浏览器面试问题1.cookie sessionStorage localStorage 区别2.如何写一个会过期的localStorage&#xff0c;说说想法2.如何定时删除localstorage数据2.localStorage 能跨域吗2.memory cache 如何开启2.localstorage的限制2.浏览器输入URL发生了什么2.浏览器如何…...

PHP 生成 PDF文件

参考官网 Example 009 : Image() TCPDF laravel 可以使用 composer 安装 tecnickcom/tcpdf 进行使用 //require_once("../app/Extend/tcpdf/tcpdf.php"); $pdf new TCPDF();// 设置文档信息$pdf->SetCreator(懒人开发网);$pdf->SetAuthor(懒人开发网);$…...

讲讲项目里的仪表盘编辑器(一)

需求 要做一个仪表盘系统&#xff0c;要求有&#xff1a; ① 设计功能&#xff08;包括布局、大小、排列&#xff09; ② 预览功能 ③ 运行功能 布局选择 做编辑器&#xff0c;肯定要先选择布局。 前端有几种常用布局。 静态布局 也叫文档布局。默认的网页形式…...

解决方案 | 如何构建市政综合管廊安全运行监测系统?

如何构建市政综合管廊安全运行监测系统&#xff1f;WITBEE万宾城市生命线智能监测仪器&#xff0c;5年免维护设计&#xff0c;集成10多项结构与气体健康监测指标&#xff0c;毫秒级快速响应&#xff0c;时刻感知综合管廊运行态势...

JCEF中js与java交互、js与java相互调用

jcef中js与java相互调用&#xff0c;java与js相互调用&#xff0c;chrome与java相互调用&#xff0c;java与chrome相互调用、jcef与java相互调用 前提&#xff1a;https://blog.csdn.net/weixin_44480167/article/details/133170970&#xff08;java内嵌浏览器CEF-JAVA、jcef、…...

9.20 校招 实习 内推 面经

绿泡*泡&#xff1a; neituijunsir 交流裙 &#xff0c;内推/实习/校招汇总表格 1、校招丨智行者2024年校园招聘正式启动啦 校招丨智行者2024年校园招聘正式启动啦 2、校招 | 乐动机器人2024校园招聘 校招 | 乐动机器人2024校园招聘 3、校招丨小天才2024届秋季校园招聘 …...

基于JAVA+SpringBoot+Vue+协同过滤算法+爬虫的前后端分离的租房系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着城市化进程的加快…...

【Android Framework系列】第16章 存储访问框架 (SAF)

1 概述 Android 4.4&#xff08;API 级别 19&#xff09;引入了存储访问框架 (Storage Access Framework)。SAF让用户能够在其所有首选文档存储提供程序中方便地浏览并打开文档、图像以及其他文件。 用户可以通过易用的标准 UI&#xff0c;以统一方式在所有应用和提供程序中浏…...

Antdesign 4中让分页组件居中显示的方法

在Ant Design 4中分页组件默认是最右边显示的&#xff0c;而这个没有设置位置的属性的 解决办法&#xff1a; 在pagination的属性中增加&#xff1a; style: {textAlign: "center"} 在Ant Design 5中可以让pagination使用align: center来实现分页组件居中...

【笔记】ubuntu 20.04 + mongodb 4.4.14定时增量备份脚本

环境 ubuntu 20.04mongodb 4.4.14还没实际使用&#xff08;20230922&#xff09;后续到10月底如果有问题会修改 原理 只会在有新增数据时生成新的备份日期目录备份恢复时&#xff0c;如果恢复的数据库未删除&#xff0c;则会覆盖数据 准备 准备一个文件夹&#xff0c;用于…...

c++实现的一个定时器实例

/* * author: hjjdebug * date : 2023年 09月 23日 星期六 11:52:29 CST * description: 用std::thread 实现了一个定时器,深刻理解一下定时器是怎样工作的. * 参考Timer.h, Timer.cpp */ $ cat main.cpp #include "Timer.h" #include <unis…...

Python线程和进程

1、深度解析Python线程和进程 一篇文章带你深度解析Python线程和进程 - 知乎使用Python中的线程模块&#xff0c;能够同时运行程序的不同部分&#xff0c;并简化设计。如果你已经入门Python&#xff0c;并且想用线程来提升程序运行速度的话&#xff0c;希望这篇教程会对你有所帮…...

算法 寻找峰值-(二分查找+反向双指针)

牛客网: BM19 题目: 寻找数组峰值&#xff0c;可能多个返回任一个&#xff0c;每个值满足nums[i] ! nums[i 1] 思路: 双指针 left 0, right n-1, 相向而行&#xff0c;取中间位置mid, nums[mid]与nums[mid1]比较&#xff0c;如果nums[mid] < nums[mid1]&#xff0c;说明…...

【数据结构】—交换排序之快速排序究极详解,手把手带你从简单的冒泡排序升级到排序的难点{快速排序}(含C语言实现)

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f525;这就不得不推荐此专栏了&#xff1a;C语言 ♈️今日夜电波&#xff1a;靴の花火—ヨルシカ 0:28━━━━━━️&#x1f49f;──────── 5:03 …...

【c#-Nuget 包“在此源中不可用”】 Nuget package “Not available in this source“

标题c#-Nuget 包“在此源中不可用”…但 VS 仍然知道它吗&#xff1f; (c# - Nuget package “Not available in this source”… but VS still knows about it?) 背景&#xff1a; 今日从公司svn 上拉取很久很久以前的代码&#xff0c;拉取下来200报错&#xff0c;进一步发…...

【数据结构】二叉树之堆的实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、二叉树的顺序结构 &#x1f4d2;1.1顺序存储 &#x1f4d2;1.2堆的性质…...

电工-三极管输入输出特性曲线讲解

三极管特性曲线是反映三极管各电极电压和电流之间相互关系的曲线&#xff0c;是用来描述晶体三极管工作特性曲线&#xff0c;常用的特性曲线有输入特性曲线和输出特性曲线。这里以下图所示的共发射极电路来分析三极管的特性曲线。 输入特性曲线 该曲线表示当e极与c极之间的电…...

深入解析容器与虚拟化:技术、对比与生态

深入解析容器与虚拟化&#xff1a;技术、对比与生态 文章目录 深入解析容器与虚拟化&#xff1a;技术、对比与生态容器和虚拟化的基本概念和原理容器的定义和特点虚拟化的定义和特点 容器使用场景容器和虚拟机的对比虚拟化技术的四个特点容器实现虚拟化的原理常见容器引擎和容器…...

制作游戏demo的心得

制作这个游戏demo出来的心得 https://www.bilibili.com/video/BV1cF411m7Dh/ 制作游戏demo的心得 制作游戏demo&#xff0c;主要是为了表现自己的技术&#xff0c;那就一门心思想着如何提高表现力就行了&#xff0c;在整体的画面渲染风格方面或许没有什么可选择的&#xff0c;…...

Web Tour Server窗口闪现

1.打开该文件所在位置 2.右击选择编辑&#xff0c;在最后一行加上pause&#xff0c;保存后重新打开Server窗口 3.重新打开后&#xff0c;若出现以下情况&#xff1a; 以管理员身份打开cmd命令行&#xff0c;输入命令netstat -aon|findstr “1080”&#xff0c;查看1080端口占用…...

Linux下的基本指令

目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令&#xff08;重要&#xff09;&#xff1a; 06.rmdir指令 && rm 指令&#xff08;重要&#xff09;&#xff1a; 07.man指令&#xff08;重要&#xff09;&#xff1a; 08mv指令&#xff…...

随机数生成器代码HTML5

代码如下 <!DOCTYPE html> <html> <head> <title>随机数生成器</title> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <style> body { text-align: center; bac…...

正确理解redux Toolkits中createSlice的action.payload

使用redux Toolkits中的createSlice编写extraReducers经常看到使用action.payload来更新state状态值&#xff1a; 那么action.payload指的到底是什么&#xff1f; 让我们看看action的定义部分&#xff1a; 注意&#xff1a; action.payload不是上面ajax请求的返回内容&#x…...

YOLOv8快速复现 官网版本 ultralytics

YOLOV8环境安装教程.&#xff1a;https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频&#xff1a;https://www.bilibili.com/video/BV12p4y1c7UY/ 1 平台搭建YOLOv8 平台&#xff1a;https://www.a…...

Haproxy搭建 Web 群集实现负载均衡

目录 1 Haproxy 1.1 HAProxy的主要特性 1.2 HAProxy负载均衡策略 1.3 LVS、Nginx、HAproxy的区别 2 Haproxy搭建 Web 群集 2.1 haproxy 服务器部署 2.1.1 关闭防火墙 2.1.2 内核配置&#xff08;实验环境可有可无&#xff09; ​2.1.3 安装 Haproxy 2.1.4 Haproxy服务…...

Tessy 5.0.4

Tessy 5.0.4 Linux 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/...

怎么让google收录网站/百度做广告怎么收费

import urllib2strHtml urllib2.urlopen(http://www.oschina.net).read()看这一段代码&#xff0c;非常简单。直接引入urllib2这个包之后&#xff0c;马上就可以调用urlopen这个方法打开这个网址。urlopen返回的是一个具有file对象行为的对象&#xff0c;直接使用read方法就可…...

景德镇建站公司/百度系app有哪些

我用git的目的主要是为了数据的完整性&#xff0c;信息不丢失&#xff0c;虽然repository的代码服务器和本地都会存一份&#xff0c;但有时候自己的小片段代码很多&#xff08;比如github的gist&#xff09;&#xff0c;不可能每天都用得到&#xff0c;需要定期的备份&#xff…...

做网站需要写程序/廊坊关键词优化报价

Docker 的出现&#xff0c;让应用 “容器化”的门槛前所未有地降低&#xff0c;而这一切都在改变着我们开发应用的方式。 今日不同以往。过去&#xff0c;一个单一的代码库就意味着一款应用功能的全部&#xff1b;而现在&#xff0c;应用被分解成为不同的功能性“片段”&#x…...

旅游网站建设规划书/深圳外贸网络推广渠道

推荐阅读&#xff1a; 1.Cas9稳转细胞株&#xff0c;令CRISPR/Cas9基因编辑更高效 2.【2020年】CRISPR基因编辑技术最新进展盘点解读 1月18日&#xff0c;博雅辑因宣布中国国家药品监督管理局药品审评中心已经批准其针对输血依赖型β地中海贫血的CRISPR/Cas9基因编辑疗法产品E…...

哪些网站可以做画赚钱/百度竞价推广方法

目录 前言 一、创建快捷方式 二、选择你的自定义图标 1. 下载png图 2. 获取ico图标文件 三、更改快捷方式图标 前言 今天在Windows10下安装了Spyder编辑器&#xff0c;好用归好用&#xff0c;但是在创建快捷方式后面对那类似于IDLE的图标实在是左右看着都难受&#xff0…...

晋城网站建设开发/免费seo软件推荐

目录一 重用机制1 问题2 原理3 模拟重用池二 数据源同步1 问题2 解决方案2.1 并发访问&数据拷贝2.2 串行访问一 重用机制 1 问题 UITablevView是开发中最常用的实现滚动列表的方案之一, 列表的具体内容载体由UITablevViewCell, 负责一个列表可能有成千上万个cell,然而iOS…...