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

Codeforces Round 916 (Div. 3)(E:贪心 F贪心dfs G tarjan+topsort +线段树优化建图)

A:直接暴力统计每个字符的次数是否达标即可

#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N];void solve()
{cin>>n;string s;cin>>s;map<int,int> mp;for(auto x:s)mp[x-'A'+1]++;int res=0;for(int i=1;i<=n;i++){if(mp[i]>=i) res++;}cout<<res<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

B:直接先输出所需要的k,然后降序输出剩下的即可

#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N],b[N];
PII d[N];
void solve()
{cin>>n>>k;int l=1,r=n;for(int i=n-k;i<=n;i++){cout<<i<<" ";}for(int i=n-k-1;i>=1;i--) cout<<i<<" ";cout<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

C:

直接枚举最后操作到哪个位置就行了,然后贪心一直操作1到i的位置的b最大值即可

#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N],b[N];void solve()
{cin>>n>>k;vector<int> s(n+10);for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++)cin>>b[i];int mx=0;int res=0,now=0;for(int i=1;i<=n;i++){if(i>k) break;now+=a[i];mx=max(mx,b[i]);res=max(res,now+mx*(k-i));}cout<<res<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

D:

先固定第一次是A 第二次是B 第三次是C

枚举B为中介点i,然后求1到i-1的A的最大值,和i+1到n的C最大值即可

然后三个数有6个排列暴力枚举即可

#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N],b[N];void solve()
{cin>>n;vector<int> a(n+10),b(n+10),c(n+10);for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];for(int i=1;i<=n;i++) cin>>c[i];auto get=[&](vector<int>&a,vector<int>&b,vector<int>&c){int mx=0;vector<int> l(n+10),r(n+10);for(int i=1;i<=n;i++) l[i]=max(a[i],l[i-1]);for(int i=n;i>=1;i--) r[i]=max(r[i+1],c[i]);for(int i=2;i<n;i++){mx=max(mx,l[i-1]+r[i+1]+b[i]);}return mx;};cout<<max({get(a,b,c),get(a,c,b),get(b,a,c),get(b,c,a),get(c,a,b),get(c,b,a)})<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

E:这个题我好像杭电多校做过...

范围那么大不太可能dp,不如从贪心切入

先想某个人取i位置贡献是啥,贡献是这个人获得了(a[i]-1),另外一个人失去了b[i]

所以这个人其实一共获得了a[i]-1+b[i]的价值

所以我们直接拿个堆维护当前a[i]+b[i]的最大值即可

#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N],b[N];
PII d[N];
void solve()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];vector<bool> st(n+10);priority_queue<PII> q;for(int i=1;i<=n;i++){q.emplace(a[i]+b[i],i);}//sort(d+1,d+1+n);int res=0;int now=0;int l=1,r=n;for(int i=1;i<=n;i++,now^=1){if(now==0){auto x=q.top();res+=a[x.second]-1;q.pop();}else{auto x=q.top();res-=(b[x.second]-1);q.pop();}}cout<<res<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

F:

贪心吧我觉得

手玩一下样例可以发现,这跟子树大小有关的

假如1的子树有三个

x,y,z,他们不能内部消化的点分别是是 4 2 1

x,y,z,他们本身的子树大小是 4 6 4

我们的目标是让内部不能消化的点通过匹配其他点来消失

我们可以发现x的4个不能内部消化的点,可以和y和z一共3个不能消化的点配对

那么是不是就多出了一个不能消化点呢?

答案是错误的,不妨这么想,x的四个点直接和y子树的随便四个点来配合,

y的两个不能内部消化的点和z可以内部消化的点和不能内部消化的点都能拿来随便用。

可是如果x的子树不能配对的子树大小是10,那么这10个子树不能通过y,z的子树的点来全部配对完

肯定还有剩余的,且这些剩余的不能内部消化

贪心的假设当前点u的儿子节点x不能配对的数最大是 mx,那么如果,他其他子树的全部节点都不够这个mx大,即拿其他子树的全部节点都不能匹配完当前最大子树不能内部消化的点数,那么

他剩下既不能跟其他子树匹配且不能内部消化的剩余的点mx-(sz[u]-size[x])的往上传,让父节点的其他节点来匹配

所以我们维护一个当前u点不能配对的数 res.first

res.second就是维护的当前子树的大小

#include<iostream>
#include<vector>
#include<cassert>
using namespace std;
int N;
vector<int>G[2<<17];
int ch[2<<17];
int dfs0(int u)
{ch[u]=1;for(int v:G[u])ch[u]+=dfs0(v);return ch[u];
}
int dfs1(int u,int L)
{int mx=0,mxv=-1;for(int v:G[u]){if(mx<ch[v])mx=ch[v],mxv=v;}if(ch[u]-1-mx>=mx){return min(L,(ch[u]-1)/2*2);}else{assert(mxv!=-1);int nL=mx-(ch[u]-1-mx);int ret=dfs1(mxv,nL);ret+=(ch[u]-1-mx)*2;return min(L,ret);}
}
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin>>T;for(;T--;){cin>>N;for(int i=0;i<N;i++)G[i].clear();for(int i=1;i<N;i++){int p;cin>>p;G[p-1].push_back(i);}dfs0(0);cout<<dfs1(0,N)/2<<"\n";}
}

G1:

操作题先想操作的性质

比如例子

3 2 1 3 1 2

我们操作2,那么两个2之间就能全部点亮,再通过3再点亮第一个3

即我们颜色为2的点,可以点亮3 1的点,再通过3 1的点再点亮其他

假设最坏情况下,可以一直点亮是什么情况呢

是整个区间都变成一个环

为什么呢

比如 1 2 1 2

点1可以到点2

点2可以到点1,构成环

如果是1 2 2 1

1可以到点2,但是点2不能到1

把环缩成点后就变成了经典的拓扑排序问题

第一个答案就是这个拓扑排序入度为0的点,

方案数就是入度为0的点之间的大小相乘即可

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;const long long inf=1e17;
using node=tuple<int,int,int,int>;
int n,m,k;
int a[N],b[N];
vector<int> g[N];int dfn[N],low[N];
int scc_cnt,timestamp;
int stk[N],id[N];
bool in_stk[N];
int sz[N],in[N];
int top;
void tarjan(int u){dfn[u] = low[u] = ++ timestamp;stk[ ++ top] = u, in_stk[u] = true;for (auto j:g[u]){if (!dfn[j]){tarjan(j);low[u] = min(low[u], low[j]);}else if (in_stk[j]) low[u] = min(low[u], dfn[j]);}if (dfn[u] == low[u]){++ scc_cnt;int y;do {y = stk[top -- ];in_stk[y] = false;id[y] = scc_cnt;sz[scc_cnt]++;} while (y != u);}}
void solve()
{cin>>n; scc_cnt=timestamp=top=0;for(int i=1;i<=n;i++){g[i].clear();dfn[i]=low[i]=0;in_stk[i]=false;sz[i]=id[i]=in[i]=0;}vector<int> l(n*2+10),r(n*2+10);for(int i=1;i<=n*2;i++){cin>>a[i];if(l[a[i]]==0) l[a[i]]=i;else r[a[i]]=i;}   vector<PII> E;for(int i=1;i<=n;i++){for(int j=l[i]+1;j<=r[i]-1;j++){g[i].push_back(a[j]);E.push_back({i,a[j]});}}for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i);for(auto [u,v]:E){if(id[u]==id[v]) continue;in[id[v]]++;}int ans=1,cnt=0;for(int i=1;i<=scc_cnt;i++){if(!in[i]){cnt++;ans=2ll*ans*sz[i]%mod;}}cout<<cnt<<" "<<ans<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

G2:

线段树优化建图,每个点最多有nlogn个出边

用线段树优化建图后

我前面有个博客写过tarjan缩点后

因为是拓扑序大的 scc_cnt小,因为tarjan是先到底部的,底部的点会先缩,再回溯到上面缩,

所以拓扑排序正常是从scc_cnt大入度小,所以从scc_cnt大的点开始拓扑排序回去即可

每个点再把他当前联通块的点标记,标记为入度不为0即可


#include<iostream>
#include<cstring>
#include<vector>
#include<array>
using namespace std;
using LL = long long;
const int maxn = 4e5 + 5, mod = 998244353;struct SCC{vector<vector<int> > g, scc;vector<int> dfn, low, stk, id;vector<bool> ins;int ts, n;SCC(const vector<vector<int> > &g) : g(g){n = (int)g.size();dfn.assign(n, 0);low.assign(n, 0);id.assign(n, -1);ins.assign(n, false);stk.reserve(n);ts = 0;build();}void tarjan(int u){dfn[u] = low[u] = ++ts;stk.push_back(u);ins[u] = 1;for(auto j : g[u]){if (!dfn[j]){tarjan(j);low[u] = min(low[u], low[j]);}else if (ins[j]) low[u] = min(low[u], dfn[j]);}if (dfn[u] == low[u]){int scc_cnt = scc.size();scc.push_back({});int y;do{y = stk.back();stk.pop_back();id[y] = scc_cnt;ins[y] = 0;scc.back().push_back(y);}while(y != u);}}void build(){for(int i = 0; i < n; i++){if (!dfn[i]){tarjan(i);}}}
};vector<vector<int> > g;
int a[maxn];
int n;int b[maxn];
void build(int u, int l, int r){if (l == r){g[u].push_back(8 * n + a[r]);g[8*n+a[r]].push_back(u);return;}int mid = (l + r) / 2;g[u].push_back(2 * u);g[u].push_back(2 * u + 1);build(2 * u, l, mid); build(2 * u + 1, mid + 1, r);
}void modify(int u, int l, int r, int L, int R, int x){if (l > R || r < L) return;if (l >= L && r <= R){g[x].push_back(u);return;}int mid = (l + r) / 2;modify(2 * u, l, mid, L, R, x);modify(2 * u + 1, mid + 1, r, L, R, x);
}int main(){cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int T;cin >> T;while(T--){cin >> n;vector<array<int, 2> > pos(n + 1);for(int i = 1; i <= 2 * n; i++){cin >> a[i];if (pos[a[i]][0] == 0){pos[a[i]][0] = i;}else{pos[a[i]][1] = i;}}g.assign(9 * n + 1, {});build(1, 1, 2 * n);for(int i = 1; i <= n; i++){auto [l, r] = pos[i];if (l + 1 <= r - 1){modify(1, 1, 2 * n, l + 1, r - 1, 8 * n + i);}}SCC scc(g);const int m = scc.scc.size();vector<int> c(m);for(int i = 0; i < m; i++){int s = 0;for(auto x : scc.scc[i]){s += (x > 8 * n);}c[i] = s;}int cnt = 0, sum = 1;vector<int> bad(m);for(int i = m - 1; i >= 0; i--){if (!bad[i] && c[i] > 0){cnt += 1;sum = 2LL * sum * c[i] % mod;}bad[i] |= (c[i] > 0);for(auto x : scc.scc[i]){for(auto j : g[x]){if (scc.id[j] != i){bad[scc.id[j]] |= bad[i];}}}}cout << cnt << ' ' << sum << '\n';}}

不会线段树优化建图的看这篇文章

「算法笔记」线段树优化建图 - maoyiting - 博客园 (cnblogs.com)

相关文章:

Codeforces Round 916 (Div. 3)(E:贪心 F贪心dfs G tarjan+topsort +线段树优化建图)

A&#xff1a;直接暴力统计每个字符的次数是否达标即可 #include<bits/stdc.h> using namespace std; const int N 3e510,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; typedef unsigned long long ULL;const long l…...

eNSP错误40,原因三:windows10自带虚拟化软件Hyper-V

问题描述 Hyper-V软件与VirtualBox不兼容&#xff0c;一旦开启Hyper-V的话eNSP的路由器就会无法开启&#xff0c;显示ERROR 40 原理 大家注意看hypervisor的两种类型&#xff1a; 左边的是开启hypervisor的Type-1&#xff0c;hypervisor在启用的时候&#xff0c;宿主机也相…...

Maven将Jar包打入本地仓库

Maven将Jar包打入本地仓库 Maven将Jar包打入本地仓库嘚吧嘚下载Maven配置Maven新建MAVEN_HOME编辑Path验证Maven配置 Jar包打入Maven仓库 Maven将Jar包打入本地仓库 嘚吧嘚 最近项目用到一个Jar包&#xff0c;不能从远程仓库拉取&#xff0c;只有一个Jar包&#xff0c;所以需…...

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1

本系列将分成三个部分&#xff0c;您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana&#xff0c;以及如何在 Grafana 上创建一个简单的控制面板。Prometheus 和 Grafana 是 Kubernetes 最受欢迎的两种开源监控工具。学习如何使用 Helm 集成这两个工具&#x…...

Observability:捕获 Elastic Agent 和 Elasticsearch 之间的延迟

在现代 IT 基础设施的动态环境中&#xff0c;高效的数据收集和分析至关重要。 Elastic Agent 是 Elastic Stack 的关键组件&#xff0c;通过促进将数据无缝摄取到 Elasticsearch 中&#xff0c;在此过程中发挥着至关重要的作用。 然而&#xff0c;显着影响此过程整体有效性的关…...

Ubuntu 常用命令之 less 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 less命令是一个在Unix和Unix-like系统中用于查看文件内容的命令行工具。与more命令相比&#xff0c;less命令提供了更多的功能和灵活性&#xff0c;例如向前和向后滚动查看文件&#xff0c;搜索文本&#xff0c;查看长行等。 les…...

探索Node.js包管理器npm:介绍与使用指南

引言&#xff1a; 在现代软件开发中&#xff0c;包管理器已经成为了不可或缺的工具。它们简化了软件的安装、升级和管理过程&#xff0c;使得开发者能够更加高效地构建项目。而作为Node.js的官方包管理器&#xff0c;npm&#xff08;Node Package Manager&#xff09;无疑是最受…...

探讨APP自动化测试工具的重要性

随着移动应用市场的蓬勃发展&#xff0c;企业对于保证其移动应用质量和用户体验的需求日益迫切。在这一背景下&#xff0c;APP自动化测试工具正变得越来越重要&#xff0c;成为企业成功的关键组成部分。本文将探讨APP自动化测试工具对企业的重要性&#xff0c;并为您解析其在提…...

el-date-picker日期时间插件只允许选择年月日小时并做可选择范围限制(精确到小时的范围)

一、首先明确下这个需求 1、要求只能选择年月日时,不要分钟和秒 2、根据后台返回的开始时间和天数设置可选择的开始时间和结束时间范围(包含小时)比如后台返回的开始时间是2023-12-20 13:24:30,天数365天,那么我们需要限制当前可选日期为2023-12-20 14时(不能选小于13:2…...

在MongoDB中使用数组字段和子文档字段进行索引

本文主要介绍在MongoDB使用数组字段和子文档字段进行索引。 目录 MongoDB的高级索引一、索引数组字段二、索引子文档字段 MongoDB的高级索引 MongoDB是一个面向文档的NoSQL数据库&#xff0c;它提供了丰富的索引功能来加快查询性能。除了常规的单字段索引之外&#xff0c;Mong…...

<JavaEE> 网络编程 -- 网络编程和 Socket 套接字

目录 一、网络编程的概念 1&#xff09;什么是网络编程&#xff1f; 2&#xff09;网络编程中的基本概念 1> 收发端 2> 请求和响应 3> 客户端和服务端 二、Socket套接字 1&#xff09;什么是“套接字”&#xff1f; 2&#xff09;Socket套接字的概念 3&…...

【计算机系统结构实验】实验2 流水线中的冲突实验

2.1 实验目的 加深对计算机流水线基本概念的理解&#xff1b; 理解MIPS结构如何用5段流水线来实现&#xff0c;理解各段的功能和基本操作&#xff1b; 加深对结构冲突/数据冲突/控制冲突的理解&#xff1b; 进一步理解解决数据冲突的方法&#xff0c;掌握如何应用定向技术来…...

conda环境下执行conda命令提示无法识别解决方案

1 问题描述 win10环境命令行执行conda命令&#xff0c;报命令无法识别&#xff0c;错误信息如下&#xff1a; PS D:\code\cv> conda activate pt conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&a…...

链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)

上篇文章简述讲解了链表的基本概念并且实现了无头单向不循环链表&#xff1a;链接未来&#xff1a;深入理解链表数据结构&#xff08;一.c语言实现无头单向非循环链表&#xff09;-CSDN博客 那今天接着给大家带来带头双向循环链表的实现&#xff1a; 文章目录 一.项目文件规划…...

论文笔记 | Nature 2023 FunSearch:利用大语言模型在数学科学领域探索新的发现

文章目录 一、前言二、主要内容三、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 科学中有许多难以解决的问题,这些问题难以获得确切解答,但却相对容易进行验证。在数学和计算机科学领域,这类问题被称为 NP 完全优化问题(NP-complete optimization pr…...

JavaScript 对象和 JSON 字符串的区别

JavaScript 对象和 JSON 字符串是两种不同的数据表示形式&#xff0c;它们有以下区别&#xff1a; 语法格式&#xff1a;JavaScript 对象是 JavaScript 语言中的一种数据类型&#xff0c;使用花括号 {} 包裹&#xff0c;属性和值之间使用冒号 : 分隔&#xff0c;并且使用逗号 …...

基于 Flink SQL 和 Paimon 构建流式湖仓新方案

目录 1. 数据分析架构演进 2. Apache Paimon 3. Flink + Paimon 流式湖仓 Consumer 机制 Changelog 生成​编辑...

MFC静态链接+libtiff静态链接提示LNK2005和LNK4098

编译报错 1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_infoAAEABV0Z) 已经在 libcmtd.lib(typinfo.obj) 中定义 1>msvcrt.lib(ti_inst.obj) : error LNK2005: "pr…...

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展&#xff0c;越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商&#xff0c;想要拓展线上业务&#xff0c;那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序&#xff0c;让你轻松完成…...

深度学习在训练什么,什么是模型

深度学习是机器学习的一个分支&#xff0c;它主要通过使用称为神经网络的复杂结构来学习数据的表征。在深度学习中&#xff0c;"训练"和"模型"是两个核心概念。 训练 在深度学习中&#xff0c;"训练"是指用数据来训练一个神经网络。这个过程涉…...

Andorid 使用bp或者mk编译C文件生成so

在Aosp源码里编译C文件生成so 使用mk编译 文件夹列表 CMkDemo/Android.mk CMkDemo/cpp/SerialPort.c CMkDemo/cpp/SerialPort.hAndroid.mk 内容如下 LOCAL_PATH: $(call my-dir) include $(CLEAR_VARS)LOCAL_MODULE_TAGS : optional# All of the source files that we will…...

只更新软件,座椅为何能获得加热功能?——一文读懂OTA

2020年&#xff0c;特斯拉发布过一次OTA更新&#xff0c;车主可以通过这次系统更新获得座椅加热功能。当时&#xff0c;这则新闻震惊了车圈和所有车主&#xff0c;彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了&#xff0c;车主对各家车企的OTA升级早已见…...

EfficientDet:Scalable and Efficient Object Detection中文版 (BiFPN)

EfficientDet: Scalable and Efficient Object Detection EfficientDet&#xff1a;可扩展和高效的目标检测 摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络架构设计选择&#xff0c;并提出了几个关键的优化方法来提高效率。首先&…...

视频监控技术经历了哪些发展阶段?视频监控技术未来趋势展望

随着城市经济的发展和进步&#xff0c;视频监控也已经应用在人们衣食住行的方方面面&#xff0c;成为社会主体的一个重要组成部分。随着视频监控的重要性越来越凸显&#xff0c;大家对视频监控技术的发展也非常关注。今天我们来简单阐述一下&#xff0c;视频监控技术经历的几个…...

德人合科技 | 设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统

设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统 PC端访问地址&#xff1a; www.drhchina.com 一、背景介绍 设计公司通常涉及到大量的创意作品、设计方案、客户资料等重要文件&#xff0c;这些文件往往包含公司的核心价值和商业机密。因此&#xff0c;如何确保…...

类和对象(下篇)

再谈构造函数 构造函数体赋值 在之前的学习中我们知道&#xff0c;在创建一个对象时&#xff0c;我们的编译器就会自动调用构造函数将对象初始化&#xff0c;给对象中各个成员变量一个合适的初始值。 例如&#xff1a; class Date { public:Date(int year, int month, int d…...

华为鸿蒙(HarmonyOS):连接一切,智慧无限

华为鸿蒙是一款全场景、分布式操作系统&#xff0c;旨在构建一个真正统一的硬件生态系统。该操作系统于2019年8月首次发布&#xff0c;并被设计为可以应用于各种设备&#xff0c;包括智能手机、智能手表、智能电视、车载系统等多种智能设备。 推荐一套最新版的鸿蒙4.0开发教程 …...

劈窗算法反演地表温度

目录 摘要操作步骤提取热红外单波段提取NDVI同步像元分辨率与个数劈窗算法地表温度反演制图 摘要 主要使用HJ-2&#xff08;环境减灾二号卫星&#xff09;的IRS传感器的两个热红外波段&#xff0c;以及红波段与近红波段计算得到的NDVI&#xff0c;使用劈窗算法&#xff0c;得到…...

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps &#xff08;同步部署文件&#xff09; 4.基于ArgoCD 实现GitOps &#xff08;同步HELM文件&#xff09; 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …...

SSH无密登陆配置

1 SSH介绍 ssh命令用于远程登录到其他计算机&#xff0c;实现安全的远程管理。 基本语法&#xff1a; ssh 域名/IP地址 示例&#xff1a; &#xff08;1&#xff09;从hadoop100服务器上远程连接hadoop101服务器 [hadoophadoop100 ~]$ ssh hadoop101 如果出现如下内容 Ar…...

四川网站建设和优化/巨量引擎app

需求描述&#xff1a; 在工作中&#xff0c;有的时候需要在cmd中进行盘符的切换&#xff0c;以前总有些时候 通过cd来切&#xff0c;就是切换不过去&#xff0c;每次都要进行百度查询&#xff0c;所以&#xff0c;这次就记录下&#xff0c; 留着以后再用。 操作过程&#xff1a…...

wordpress设置固定链接/推广公司产品

使用LINQ to SQL设计器设计Northwind数据库的五个类&#xff08;Product&#xff0c;Category&#xff0c;Customer&#xff0c;Order和OrderDetail&#xff09;的时候&#xff0c;每个类中的属性都映射了相应数据库中表的列&#xff0c;每个类的实例则代表了数据库表中的一条记…...

免费做数据采集的网站/最新新闻

经常回今天说一下substring()方法的特性以及应用。substring() 方法用于提取字符串中介于两个指定下标之间的字符&#xff0c;所以它有两个参数&#xff0c;一个是起始的位置&#xff0c;一个是结束的位置&#xff0c;通俗点说就是针对一段字符串的每个字符的位置截取开始到结束…...

重庆免费网站建设/群排名优化软件官网

我正在用Qt编写一个应用程序&#xff0c;我想用插件扩展它。我的应用程序还有一个插件将使用的库。所以&#xff0c;我需要双向交流。基本上&#xff0c;插件可以调用库&#xff0c;加载插件的应用程序将调用它们。在现在&#xff0c;我的库用C编写&#xff0c;所以它有一些类。…...

专业做网站制作自助建站系统/平台推广销售话术

写在前面 本文接k8s之ingress 。 本文看一个基于ingress作为流量入口的实战例子&#xff0c;架构图如下&#xff1a; 接下来详细看下。 1&#xff1a;部署MariaDB 首先我们需要定义MariaDB使用的configmap&#xff0c;如下&#xff1a; apiVersion: v1 kind: ConfigMap meta…...

php .net做网站哪个好/百度一下首页网址百度

一、加载过程 首先&#xff0c;我们需要搞清楚一个概念&#xff1a;我们在电脑上看到的 png 格式或者 jpg 格式的图片&#xff0c;png(jpg) 只是这张图片的容器&#xff0c;它们是经过相对应的压缩算法将原图每个像素点信息转换用另一种数据格式表示&#xff0c;以此达到压缩目…...