2025牛客多校第六場 D.漂亮矩陣 K.最大gcd C.棧 L.最小括號串 個人題解

L.最小括號串

#數組操作 #貪心

題目

![[Pasted image 20250802151852.png]]

思路

感謝Leratiomyces大佬賽時的提示,否則估計還一直簽不了到()

首先,貪心地構造出最優情況:數組左半部分全是(,右半部分全是),隨后通過判斷給定的區間中是否包含(來決定是否調整當前序列。

對給定的區間按照左端點降序排序,這樣就可以從右往左有序遍歷所有區間。

設置兩個指針idl,idrid_{l},id_{r}idl?,idr?

  • idlid_{l}idl?指向未被調換的(中最右的(的下標
  • idrid_{r}idr?指向經過調換后的(中最左的(的下標

從右往左有序遍歷所有區間:

  • 如果當前區間右端點rrridrid_{r}idr?左側,那么說明當前區間[l,r][l,r][l,r]中一定沒有(,因此需要調度一個(前往lll位置(盡量保證字典序小),即swap(ans[idl],ans[l])swap(ans[\ id_{l}\ ],ans[\ l\ ])swap(ans[?idl??],ans[?l?])
  • 調度前需要注意idlid_{l}idl?是否為0,即序列左端是否還剩余(。如果idl==0id_{l}==0idl?==0而仍然需要調度(,那么必然是不合法的,輸出-1

最后不要忘了遍歷整個序列判斷是否會存在)(的非法情況

代碼實現

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<unordered_set>
#include<queue>
using namespace std;
using ll = long long;
#define rep(i, a, b) for(ll i = (a); i <= (b); i++)
#define per(i, a, b) for(ll i = (a); i >= (b); i--)
#define mid ((l+r)>>1)
#define see(stl) for(auto&ele:stl)cout<<ele<<" "; cout<<'\n';
const int N=1e5+5;
int n,m;
struct lr{int l,r;bool operator<(const lr&t)const{return l>t.l;}
};
void solve() {cin>>n>>m;n*=2;vector<lr>b(m+1);    vector<char>ans(n+1);rep(i,1,m){int l,r;cin>>l>>r;b[i]={l,r};}rep(i,1,n){if(i<=n/2)ans[i]='(';else ans[i]=')';}sort(b.begin()+1,b.begin()+1+m);int idl=n/2,idr=n+1;rep(i,1,m){int l=b[i].l,r=b[i].r;if(r<idr){if(idl<1){cout<<-1<<'\n';return;}swap(ans[idl],ans[l]);idr=l;idl--;}}int cntl=0,cntr=0;rep(i,1,n){if(ans[i]=='(')cntl++;else cntr++;if(cntr>cntl){cout<<-1<<'\n';return;}}rep(i,1,n)cout<<ans[i];cout<<'\n';
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) {solve();}return 0;
}

C.

#數學 #組合數 #斯特林數

題目

![[Pasted image 20250802154220.png]]

思路

提供一種純數學的方法:

SnmS_{n}^mSnm?為長度為nnn的所有排列中sizesizesizemmm的數量
易知∑i=1nSni=n!\sum_{i=1}^nS_{n}^i=n!i=1n?Sni?=n!,即排列數AnnA_{n}^nAnn?

接下來可以找出他的遞推:

  • 當數字nnn不位于排列的最后一位時,stackstackstackpoppoppop功能必定會將其poppoppop掉,即數字nnn不產生貢獻。數字nnn不位于最后一位的可能有n?1n-1n?1種,那么就可以將此時的情況等價于長度為n?1的所有排列中size為m的數量長度為n-1的所有排列中size為m的數量長度為n?1的所有排列中sizem的數量,即(n?1)×Sn?1m(n-1)\times S_{n-1}^m(n?1)×Sn?1m?
  • 當數字nnn位于排列的最后一位時,其必然對sizesizesize產生111的貢獻,那么就可以將此時的情況等價于長度為n?1的所有排列中size為m?1的數量長度為n-1的所有排列中size為m-1的數量長度為n?1的所有排列中sizem?1的數量,即Sn?1m?1S_{n-1}^{m-1}Sn?1m?1?
    綜上:
    Snm=(n?1)×Sn?1m+Sn?1m?1S_{n}^m=(n-1)\times S_{n-1}^m+S_{n-1}^{m-1} Snm?=(n?1)×Sn?1m?+Sn?1m?1?
    則答案所求即:
    ∑i=1ni3?Sni\sum_{i=1}^n i^3·S_{n}^i i=1n?i3?Sni?

為了求解答案,我們設sumj[n]=∑i=1nij?Snisum_{j}[n]=\sum_{i=1}^ni^j·S_{n}^isumj?[n]=i=1n?ij?Sni?,其中:

  • sum0[n]=∑i=1nSni=n!sum_{0}[n]=\sum_{i=1}^nS_{n^i}=n!sum0?[n]=i=1n?Sni?=n!
  • 所求答案即sum3[n]sum_{3}[n]sum3?[n]

接下來我們來研究sumjsum_{j}sumj?之間的遞推:
sum1[n]=∑i=1ni?Sn?1i帶入遞推式Snm=(n?1)×Sn?1m+Sn?1m?1:=∑i=1ni?[(n?1)Sn?1i+Sn?1i?1]=(n?1)∑i=1ni?Sn?1i+∑i=1ni?Sn?1i?1=(n?1)sum1[n?1]+∑i=0n?1(i+1)?Sn?1i=(n?1)sum1[n?1]+∑i=1n?1i?Sn?1i+∑i=1n?1Sn?1i=(n?1+1)sum1[n?1]+sum0[n?1]sum1[n]=n?sum1[n?1]+sum0[n?1]\begin{align} sum_{1}[n]&=\sum_{i=1}^ni·S_{n-1}^i\\ \\ &帶入遞推式S_{n}^m=(n-1)\times S_{n-1}^m+S_{n-1}^{m-1}:\\ \\ &=\sum_{i=1}^ni·[\ (n-1)S_{n-1}^i+S_{n-1}^{i-1}]\\ \\ &=(n-1)\sum_{i=1}^ni·S_{n-1}^i+\sum_{i=1}^ni·S_{n-1}^{i-1}\\ \\ &=(n-1)sum_{1}[n-1]+\sum_{i=0}^{n-1}(i+1)·S_{n-1}^i\\ \\ &=(n-1)sum_{1}[n-1]+\sum_{i=1}^{n-1}i·S_{n-1}^i+\sum_{i=1}^{n-1}S_{n-1}^i\\ \\ &=(n-1+1)sum_{1}[n-1]+sum_{0}[n-1]\\ \\ sum_{1}[n]&=n·sum_{1}[n-1]+sum_{0}[n-1] \end{align} sum1?[n]sum1?[n]?=i=1n?i?Sn?1i?帶入遞推式Snm?=(n?1)×Sn?1m?+Sn?1m?1?:=i=1n?i?[?(n?1)Sn?1i?+Sn?1i?1?]=(n?1)i=1n?i?Sn?1i?+i=1n?i?Sn?1i?1?=(n?1)sum1?[n?1]+i=0n?1?(i+1)?Sn?1i?=(n?1)sum1?[n?1]+i=1n?1?i?Sn?1i?+i=1n?1?Sn?1i?=(n?1+1)sum1?[n?1]+sum0?[n?1]=n?sum1?[n?1]+sum0?[n?1]??
因此我們可以完全類比推導過程得出sumj[n]sum_{j}[n]sumj?[n]的公式:
sumj[n]=∑i=1nij?Sni=∑i=1nij?[(n?1)Sn?1i+Sn?1i?1]=(n?1)sumj[n?1]+∑i=1nij?Sn?1i?1=(n?1)sumj[n?1]+∑i=0n?1(i+1)j?Sn?1i=(n?1)sumj[n?1]+∑i=1n?1∑k=0jCjk?ik?Sn?1i=(n?1)sumj[n?1]+∑k=0jCjk∑i=1n?1ik?Sn?1isumj[n]=(n?1)sumj[n?1]+∑k=0jsumk[n?1]\begin{align} &sum_{j}[n]=\sum_{i=1}^ni^j·S_{n}^i\\ \\ &=\sum_{i=1}^ni^j·[(n-1)S_{n-1}^i+S_{n-1}^{i-1}]\\ \\ &=(n-1)sum_{j}[n-1]+\sum_{i=1}^ni^j·S_{n-1}^{i-1}\\ \\ &=(n-1)sum_{j}[n-1]+\sum_{i=0}^{n-1}(i+1)^j·S_{n-1}^i\\ \\ &=(n-1)sum_{j}[n-1]+\sum_{i=1}^{n-1}\sum_{k=0}^jC_{j}^k·i^k·S_{n-1}^i\\ \\ &=(n-1)sum_{j}[n-1]+\sum_{k=0}^jC_{j}^k\sum_{i=1}^{n-1}i^k·S_{n-1}^i\\ \\ sum_{j}[n]&=(n-1)sum_{j}[n-1]+\sum_{k=0}^jsum_{k}[n-1] \end{align} sumj?[n]?sumj?[n]=i=1n?ij?Sni?=i=1n?ij?[(n?1)Sn?1i?+Sn?1i?1?]=(n?1)sumj?[n?1]+i=1n?ij?Sn?1i?1?=(n?1)sumj?[n?1]+i=0n?1?(i+1)j?Sn?1i?=(n?1)sumj?[n?1]+i=1n?1?k=0j?Cjk??ik?Sn?1i?=(n?1)sumj?[n?1]+k=0j?Cjk?i=1n?1?ik?Sn?1i?=(n?1)sumj?[n?1]+k=0j?sumk?[n?1]??
由此我們可以在o(n)o(n)o(n)的復雜度下遞推得到sum3[n]sum_{3}[n]sum3?[n]

代碼實現

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<set>
using namespace std;
using ll = long long;
#define rep(i, a, b) for(ll i = (a); i <= (b); i ++)
#define per(i, a, b) for(ll i = (a); i >= (b); i --)
const int MOD = 998244353;
const int N = 5e5 + 5;ll ans[N], sum3[N], sum2[N], sum1[N], sum0[N];void precompute() {sum0[1] = 1;sum1[1] = 1;sum2[1] = 1;sum3[1] = 1;ans[1] = 1;  for (int n = 2; n < N; ++n) {sum0[n] = (n * sum0[n-1]) % MOD;sum1[n] = (n * sum1[n-1] + sum0[n-1]) % MOD;sum2[n] = (n * sum2[n-1] + 2 * sum1[n-1] + sum0[n-1]) % MOD;sum3[n] = (n * sum3[n-1] + 3 * sum2[n-1] + 3 * sum1[n-1] + sum0[n-1]) % MOD;       ans[n] = sum3[n];}
}int main() {ios::sync_with_stdio(false);cin.tie(0);precompute();int T;cin >> T;while (T--) {int n;cin >> n;cout << ans[n] << '\n';}return 0;
}

K. 最大gcd

#數學 #gcd #差分

題目

![[Pasted image 20250802165206.png]]

思路

已知gcd具有特殊性質:
gcd(a1,a2,…,an)=gcd(a1,a2?a1,a3?a2,…,an?an?1)gcd(a_{1},a_{2},\dots,a_{n})=gcd(a_{1},a_{2}-a_{1},a_{3}-a_{2},\dots,a_{n}-a_{n-1}) gcd(a1?,a2?,,an?)=gcd(a1?,a2??a1?,a3??a2?,,an??an?1?)
設差分數組b[N],b[i]=a[i]?a[i?1]b[N],b[i]=a[i]-a[i-1]b[N],b[i]=a[i]?a[i?1]

則對于區間[l,r][l,r][l,r]內每個數都加kkk相當于對b[l]+=k,b[r+1]?=kb[l]+=k,b[r+1]-=kb[l]+=k,b[r+1]?=k

  • 首先討論整個數組都+k+k+k的情況:
    • 操作b[1]+=kb[1]+=kb[1]+=k即可(b[r+1]b[r+1]b[r+1]不存在)
    • 此時的gcd為gcd(b1+k,b2,…,bn)gcd(b_{1}+k,b_{2},\dots,b_{n})gcd(b1?+k,b2?,,bn?)
    • 必定存在kkk使得gcd(b2,b3,…,bn)∣(b1+k)gcd(b_{2},b_{3},\dots,b_{n})|(b_{1}+k)gcd(b2?,b3?,,bn?)(b1?+k)
    • 因此該情況的gcd記為g1=gcd(b2,b3,…,bn)g_{1}=gcd(b_{2},b_{3},\dots,b_{n})g1?=gcd(b2?,b3?,,bn?)
  • 接下來討論局部+k+k+k的情況:
    • 由于是局部操作,所以b1,bnb_{1},b_{n}b1?,bn?這兩個的其中一個必定不會被+k+k+k,因此枚舉b1,bnb_{1},b_{n}b1?,bn?的所有因數fff
    • 若所有的bib_{i}bi?都為fff的倍數,那么當前的fff一定是合法的gcd
    • 若只有一個bib_{i}bi?不是fff的倍數,那么一定存在一個kkk使得f∣(bi+k)f|(b_{i}+k)f(bi?+k),當前的fff也是合法的
    • 若超過兩個bib_{i}bi?不是fff的倍數,那么無論怎么操作都不可能使得整個數組的gcd為fff
    • 若只有兩個bib_{i}bi?不是fff的倍數,那么需要特殊判斷。在此提供兩種判斷方法:
      • 方法一:
        • 設不是fff的兩個數為b1,b2b_{1},b_{2}b1?,b2?,則b1=t1×f+b1%f,b2=t2×f+b2%fb_{1}=t_{1}\times f+b_{1}\%f,b_{2}=t_{2}\times f+b_{2}\%fb1?=t1?×f+b1?%f,b2?=t2?×f+b2?%f
        • k=b1%fk=b_{1}\%fk=b1?%f,則b1?k=t1×fb_{1}-k=t_{1}\times fb1??k=t1?×ffff的倍數;
        • b2+k=t2×f+b1%f+b2%fb_{2}+k=t_{2}\times f+b_{1}\%f+b_{2}\%fb2?+k=t2?×f+b1?%f+b2?%f要為fff的倍數,則必有(b1%f+b2%f)%f=0(b_{1}\%f+b_{2}\%f)\%f=0(b1?%f+b2?%f)%f=0
        • 因此可以通過判別式(b1%f+b2%f)%f=0(b_{1}\%f+b_{2}\%f)\%f=0(b1?%f+b2?%f)%f=0來確定兩個bib_{i}bi?是否合法
      • 方法二:
        • 設不是fff的兩個數為b1,b2b_{1},b_{2}b1?,b2?b1?k,b2+kb_{1}-k,b_{2}+kb1??k,b2?+kfff的倍數,則有b1≡k(modf),b2≡(?k)(modf)b_{1}\equiv k\pmod{f},b_{2}\equiv(-k)\pmod{f}b1?k(modf),b2?(?k)(modf)
        • 兩式相加得(b1+b2)≡0(modf)(b_{1}+b_{2})\equiv0\pmod{f}(b1?+b2?)0(modf),即(b1+b2)%f=0(b_{1}+b_{2})\%f=0(b1?+b2?)%f=0
        • 因此可以通過判別式(b1+b2)%f=0(b_{1}+b_{2})\%f=0(b1?+b2?)%f=0來判斷兩個bib_{i}bi?是否合法

特別需要注意的是,由于差分可能會導致負數,所以gcd函數返回的時候需要加絕對值
這與給傳入的變量加絕對值是完全不一樣的操作!

代碼實現

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<set>
using namespace std;
using ll = long long;
#define rep(i, a, b) for(ll i = (a); i <= (b); i ++)
#define per(i, a, b) for(ll i = (a); i >= (b); i --)
//#define see(stl) for(auto&ele:stl)cout<<ele<<" "; cout<<'\n';
const ll inf = 1e7 + 5;
// #define int ll
const int N=1e5+5;ll gcd(ll a,ll b){if(!b)return abs(a);return gcd(b,a%b);
}int a[N],b[N];
void eachT() {int n;cin>>n;bool same=1;int g1;rep(i,1,n){cin>>a[i],b[i]=(a[i]-a[i-1]);if(i==2)g1=b[2];if(i>=3)g1=gcd(g1,(b[i]));if(i>=2&&a[i]!=a[i-1])same=0;}if(same){cout<<0<<'\n';return;}if(n==2){cout<<max(a[1],a[2])<<'\n';return;}set<int>fac;for(int i=1;i*i<=a[1];i++){if(a[1]%i==0)fac.insert(i),fac.insert(a[1]/i);}for(int i=1;i*i<=a[n];i++){if(a[n]%i==0)fac.insert(i),fac.insert(a[n]/i);}int cnt,ans=g1;for(auto&f:fac){int mod=0;cnt=0;  rep(i,2,n)if(b[i]%f!=0)cnt++,mod+=b[i]%f;if(cnt<=1){ans=max(ans,f);      }if((cnt==2)&&(mod%f==0)){ans=max(ans,f);}}cout<<ans<<'\n';
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);ll t = 1;cin >> t;while (t--) { eachT(); }
}

D.漂亮矩陣

#數學 #組合數 #廣義二項式定理 #FFT

題目

![[Pasted image 20250802183420.png]]

思路

Bi,j=Ai,j+1?Ai,jB_{i,j}=A_{i,j+1}-A_{i,j}Bi,j?=Ai,j+1??Ai,j?,則有Bi,j≥Bi+1,jB_{i,j}\geq B_{i+1,j}Bi,j?Bi+1,j?∑j=1nBi,j≤m\sum_{j=1}^nB_{i,j}\leq mj=1n?Bi,j?m
因此有∑j=1nBi+1,j≤∑j=1nBi,j≤∑j=1nB1,j≤m\sum_{j=1}^nB_{i+1,j}\leq \sum_{j=1}^nB_{i,j}\leq \sum_{j=1}^nB_{1,j}\leq mj=1n?Bi+1,j?j=1n?Bi,j?j=1n?B1,j?m
所以只需要滿足∑1,jnB1,j≤m\sum_{1,j}^nB_{1,j}\leq m1,jn?B1,j?m且每列的BBB值單調不增即可

B1,i=xB_{1,i}=xB1,i?=x,一列共有nnn個元素,求這一列開頭為xxx且后續單調不增的所有情況數:

  • 假設有xxx塊隔板li,i∈[0,x]l_{i},i\in[0,x]li?,i[0,x],若li?1l_{i-1}li?1?lil_{i}li?間有kkk個數,則令這kkk個數為iii
  • 由于開頭已經固定為xxx,只能對剩下的n?1n-1n?1個數進行操作,n?1n-1n?1個數提供n?1n-1n?1個空位,再加上xxx個隔板自己的位置,相當于一共x+n?1x+n-1x+n?1個空位中放入xxx個隔板,即Cx+n?1xC_{x+n-1}^xCx+n?1x?
    ![[Pasted image 20250802192143.png]]

接下來利用生成函數來構造總和不超過mmm的所有情況數:

  • 構造函數F(x)=C0+n?10x0+C1+n?11x1+?+Cm+n?1mxm+?=∑i=0∞Ci+n?1ixiF(x)=C_{0+n-1}^0x^0+C_{1+n-1}^1x^1+\dots+C_{m+n-1}^mx^m+\dots=\sum_{i=0}^\infty C_{i+n-1}^ix^iF(x)=C0+n?10?x0+C1+n?11?x1+?+Cm+n?1m?xm+?=i=0?Ci+n?1i?xi
  • 構造多項式F(x)?F(x)?…?F(x)=F(x)n?1F(x)·F(x)·\dots·F(x)=F(x)^{n-1}F(x)?F(x)??F(x)=F(x)n?1,相當于除了第一列以外的n?1n-1n?1列的所有情況。多項式F(x)n?1F(x)^{n-1}F(x)n?1中的前mmm項的系數之和即為總和不超過mmm的所有情況數

此時可以用FFTFFTFFT來快速得出答案,復雜度o(nlog?n)o(n\log n)o(nlogn)

但是其實還可以用廣義二項式定理進一步化簡:
廣義二項式定理實際上就是將組合數的定義域拓寬到了整個實數域
F(x)=∑i=0∞Ci+n?1ixi=(1?x)?n(廣義二項式定理)F(x)n?1=(1?x)?n(n?1)令t=n(n?1)則F(x)n?1=(1?x)?t=∑i=0∞Ci+t?1ixi=∑i=0∞Ci+t?1t?1xi則其前m項的系數和為∑i=0mCi+t?1t?1=Cm+tt即求(m+t)!t!?m!=(m+t)(m+t?1)???(t+1)m!\begin{align} &F(x)=\sum_{i=0}^\infty C_{i+n-1}^ix^i=(1-x)^{-n}\ \ \ (廣義二項式定理)\\ \\ &F(x)^{n-1}=(1-x)^{-n(n-1)}\\ \\ &令t=n(n-1) \\ \\ &則F(x)^{n-1}=(1-x)^{-t} =\sum_{i=0}^\infty C_{i+t-1}^ix^i=\sum_{i=0}^\infty C_{i+t-1}^{t-1}x^i\\ \\ &則其前m項的系數和為\sum_{i=0}^mC_{i+t-1}^{t-1}=C_{m+t}^t\\ \\ &即求 \frac{(m+t)!}{t!·m!}= \frac{(m+t)(m+t-1)···(t+1)}{m!} \end{align} ?F(x)=i=0?Ci+n?1i?xi=(1?x)?n???(廣義二項式定理)F(x)n?1=(1?x)?n(n?1)t=n(n?1)F(x)n?1=(1?x)?t=i=0?Ci+t?1i?xi=i=0?Ci+t?1t?1?xi則其前m項的系數和為i=0m?Ci+t?1t?1?=Cm+tt?即求t!?m!(m+t)!?=m!(m+t)(m+t?1)???(t+1)???
分子可以o(m)o(m)o(m)暴力算出,分母可以o(m)o(m)o(m)預處理逆元算出,總復雜度為o(m)o(m)o(m)

代碼實現

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<set>
using namespace std;
using ll = long long;
#define rep(i, a, b) for(ll i = (a); i <= (b); i ++)
#define per(i, a, b) for(ll i = (a); i >= (b); i --)
//#define see(stl) for(auto&ele:stl)cout<<ele<<" "; cout<<'\n';
const ll inf = 1e7 + 5;
// #define int ll
const int N=1e5+5;ll mod=998244353;
ll qpow(ll a, ll b) {a %= mod; ll res = 1;while (b) {if (b % 2) { res *= a, res %= mod; }a *= a, a %= mod, b /= 2;}return res%mod;
}
vector<ll>a, inv;
void inv0(ll len) {a.resize(len + 1), inv.resize(len + 1);a[0] = 1, inv[0] = 1;rep(i, 1, len) {a[i] = a[i - 1] * i % mod;inv[i] = qpow(a[i], mod - 2);}
}void eachT() {ll n,m;cin>>n>>m;ll ans=1;rep(i,1,m){ans*=(n*(n-1)+i)%mod;ans%=mod;}ans*=inv[m];ans%=mod;cout<<ans<<'\n';
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);inv0(5e5);ll t = 1;//cin >> t;while (t--) { eachT(); }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94131.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu搭建PX4無人機仿真環境(5) —— 仿真環境搭建(以Ubuntu 22.04,ROS2 Humble 為例)

目錄前言1. 準備下載源碼方式一&#xff1a;方式二&#xff1a;安裝依賴安裝 Gazebo2. 安裝 Micro XRCE-DDS Agent3. 編譯4. 通信5. offboard 測試參考前言 本教程基于 ROS2 &#xff0c;在搭建之前&#xff0c;需要把 ROS2、QGC 等基礎環境安裝配置完成。但是這塊的資料相比較…

自動駕駛中的傳感器技術11——Camera(2)

1、自駕Camera關鍵技術點匯總 ADAS Camera 關鍵技術點摘選&#xff08;IEEE-P2020工作組&#xff09;如下&#xff1a; Ref &#xff1a; 5. IEEE 相關標準 - 圖像質量與色彩技術知識庫 https://www.image-engineering.de/content/library/white_paper/P2020_white_paper.pd…

福彩雙色球第2025088期籃球號碼分析

蔡楚門福彩雙色球第2025088期籃球號碼分析&#xff0c;上期開出籃球號碼數字08&#xff0c;數字形式是合數偶數2路球數字&#xff0c;小號區域&#xff0c;0字頭數字。本期籃球號碼分析&#xff0c;4尾數0414遺漏9期上次遺漏11期&#xff0c;2尾數0212遺漏4期上次遺漏27期&…

【兆易創新】單片機GD32F103C8T6系列入門資料

GD32F103xx 系列器件是一款基于ARM Cortex-M3 RISC內核的32位通用微控制器&#xff0c;在處理能力、降低功耗和外設方面具有超優的性價比。Cortex-M3是下一代處理器核心&#xff0c;它與嵌套矢量中斷控制器(NVIC)&#xff0c; SysTick計時器和高級調試支持緊密耦合。 GD32F103…

高效輕量的C++ HTTP服務:cpp-httplib使用指南

文章目錄httplib介紹與安裝使用案例httplib介紹與安裝 C HTTP 庫&#xff08;cpp-httplib&#xff09;是一個輕量級的 C HTTP 客戶端/服務器庫&#xff0c;它提供了簡單的 API 來創建 HTTP 服務器和客戶端&#xff0c;支持同步和異步操作。以下是一些關于cpp-httplib 的主要特…

24 SAP CPI 調用SAP HTTP接口

SAP CPI 訪問SAP接口一般用RFC或者HTTP,個人在項目中兩種方法都用過,最后還是傾向于HTTP的方式,此方式易于維護,統一管理,接口搭建比較方便。 讀者朋友可網上自行搜索"SAP 發布HTTP接口",SAP CPI調用SAP發布的HTTP接口。 配置CPI接口前,需要將CPI的證書導入…

C/C++常用字符串函數

一、字符串函數介紹&#xff1a; 字符串作為程序中常用的數據類型&#xff0c;學會對字符串進行處理是作為一名C/C程序員的基本功&#xff0c;我們要學會使用相關函數&#xff0c;并且對重點函數要會自己手動實現&#xff08;下文對重點函數有實現代碼以及相關示例&#xff09…

YOLO的Python實現以及 OpenCV

YOLO的Python實現以及 OpenCV Darknet 實現 YOLO 從頭開始開發 YOLO模型不容易&#xff0c;所以我們要使用預訓練模型在項目里進行目 標檢測。你可以在 https://pjreddie.com里到所有可用的預訓練模型。這是 Joseph C. Redmon的主頁&#xff0c;他是 Darknet的維護者。 注意 …

譯|Netflix 數據平臺運營中基于機器學習自動修復系統

來自上傳文件中的文章《Evolving from Rule-based Classifier: Machine Learning Powered Auto Remediation in Netflix Data Platform》 本文介紹了Netflix如何將基于規則的錯誤分類器與機器學習服務集成&#xff0c;實現Spark作業失敗的自動修復。技術亮點包括結合規則和ML智…

PAES算法求解 ZDT1 雙目標優化問題

前言 提醒&#xff1a; 文章內容為方便作者自己后日復習與查閱而進行的書寫與發布&#xff0c;其中引用內容都會使用鏈接表明出處&#xff08;如有侵權問題&#xff0c;請及時聯系&#xff09;。 其中內容多為一次書寫&#xff0c;缺少檢查與訂正&#xff0c;如有問題或其他拓展…

邏輯回歸的應用

一參數邏輯回歸參數及多分類策略等完整解析LogisticRegression 初始參數聲明LogisticRegression(penaltyl2, dualFalse, tol0.0001, C1.0, fit_interceptTrue, intercept_scaling1, class_weightNone, random_stateNone, solverliblinear, max_iter100, multi_classovr, verbos…

C語言(長期更新)第7講:VS實用調試技巧

C語言&#xff08;長期更新&#xff09; 第7講 VS實用調試技巧 跟著潼心走&#xff0c;輕松拿捏C語言&#xff0c;困惑通通走&#xff0c;一去不回頭~歡迎開始今天的學習內容&#xff0c;你的支持就是博主最大的動力。 目錄 C語言&#xff08;長期更新&#xff09; 第7講 …

CONTRASTIVE-KAN:一種用于稀缺標記數據的網絡安全半監督入侵檢測框架

研究背景與挑戰? ?工業環境需求?: 第四次工業革命中,物聯網(IoT)和工業物聯網(IIoT)的普及使網絡安全成為關鍵挑戰。 入侵檢測系統需實時性高,尤其對關鍵基礎設施(如燃氣管道)的快速攻擊檢測至關重要。 ?核心問題?: ?標簽數據稀缺?:工業系統多數時間處于正常…

綜合:單臂路由+三層交換技術+telnet配置+DHCP

技術考核1 實驗拓撲&#xff1a;實驗需求 1.按照圖示配置IP地址設備名 2.在SW1和SW2之間配置鏈路聚合增加鏈路帶寬&#xff0c;提高可靠性 3.PC5和PC6屬于VLAN10&#xff0c; PC7和PC8屬于VLAN20 4.SW1和SW2屬于二層交換機&#xff0c;SW3為三層交換機&#xff08;VLAN100用于對…

工業火焰識別漏報率↓78%!陌訊多模態融合算法實戰解析

原創聲明&#xff1a;本文技術方案解析基于陌訊技術白皮書2025版 標簽&#xff1a;#陌訊視覺算法 #火焰識別優化 #工業安全監控 #邊緣計算優化一、行業痛點&#xff1a;工業火災監控的漏檢危機據《2025工業安全白皮書》統計&#xff0c;化工場景傳統火焰識別系統漏報率高達35%&…

C++引用:高效安全的別名機制詳解

目錄 一、引用的概念 二、引用的特性 1、定義時必須初始化 2、一個變量可以有多個引用 3、引用一旦綁定實體就不能更改 三、const引用&#xff08;常引用&#xff09; 1、const引用的基本特性 2、臨時對象與const引用 3、臨時對象的特性 4、const 引用作為函數形參 …

大語言模型API付費?

下面是目前主流 大語言模型 API 的付費情況總覽&#xff1a; &#x1f9e0; 一、主要大語言模型 API&#xff1a;是否付費對比 提供方模型是否免費限制 / 說明OpenAIGPT-3.5 / GPT-4 / GPT-4o? 付費為主有免費額度&#xff08;如 ChatGPT 免費版&#xff09;&#xff0c;API …

巧用Wisdom SSH:容器化運維與傳統運維的抉擇

巧用Wisdom SSH&#xff1a;容器化運維與傳統運維的抉擇 在當下的技術領域&#xff0c;容器化運維與傳統運維是運維人員面臨的兩大主要方向&#xff0c;對于從業者來說&#xff0c;如何抉擇至關重要&#xff0c;而Wisdom SSH在其中能發揮顯著作用。 傳統運維&#xff1a;基石…

API征服者:Python抓取星鏈衛星實時軌跡

API征服者&#xff1a;Python抓取星鏈衛星實時軌跡從基礎調用到工業級衛星追蹤系統實戰指南一、太空數據時代&#xff1a;星鏈衛星的全球覆蓋??星鏈衛星網絡規模??&#xff1a;已發射衛星數量&#xff1a;4,000目標衛星總數&#xff1a;42,000軌道高度&#xff1a;340km - …

《深潛React列表渲染:調和算法與虛擬DOM Diff的優化深解》

當用戶在內容平臺無限滑動&#xff0c;或是在管理系統中處理成百上千條數據時&#xff0c;每一次無卡頓的交互&#xff0c;都是調和算法與虛擬DOM Diff機制協同工作的成果。理解這兩者的底層邏輯&#xff0c;不僅是性能優化的鑰匙&#xff0c;更是從“使用框架”到“理解框架”…