圖論水題日記

cf1805D

題意

給定一棵樹,規定dis(u,v)≥kdis(u,v) \geq kdis(u,v)k(u,v)(u,v)(u,v)之間存在一條無向邊,求k=(1,2,...n)k=(1,2,...n)k=(1,2,...n)時圖中的連通塊個數

思路

  • 前置知識:樹上一點到其最遠的點一定是樹直徑的兩個端點之一
  • 若一個點到其最遠的點大于k,那么其一定是孤立點,我們可以計算出每個點在k為多少時變成孤立點,答案即為前綴和
  • 所以計算出直徑兩端點之后再計算出所有點到兩端點的距離,則i點在k=max(dis1[i],dis2[i])+1k=max(dis1[i],dis2[i])+1k=max(dis1[i],dis2[i])+1時變成孤立點
  • 需要注意k=0時,連通塊為1個,k>直徑時,所有點都孤立,即n個連通塊

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=1e5+10;
vector<int>e[N];void solve()
{int n;cin>>n;for(int i=1;i<n;i++){int a,b;cin>>a>>b;e[a].pb(b);e[b].pb(a);}vector<int>dep(n+1,-1);int root1,root2;int deepest=1;auto dfs=[&](auto && dfs,int u,int fa)->void{dep[u]=dep[fa]+1;if(dep[u]>dep[deepest]) deepest=u;for(auto ed:e[u]){if(ed==fa) continue;dfs(dfs,ed,u);}};dfs(dfs,1,0);root1=deepest;dfs(dfs,root1,0);root2=deepest;auto dfs1=[&](auto && dfs1,vector<int>&dis,int u,int fa)->void{dis[u]=dis[fa]+1;for(auto ed:e[u]){if(ed==fa) continue;dfs1(dfs1,dis,ed,u);}};vector<int>dis1(n+1,-1);dis1[root1]=0;dfs1(dfs1,dis1,root1,0);vector<int>dis2(n+1,-1);dis2[root2]=0;dfs1(dfs1,dis2,root2,0);//cout<<root1<<" "<<root2<<endl;//for(int i=1;i<=n;i++) cout<<dis1[i]<<" "<<dis2[i]<<endl;vector<int>ans(n+1);//k為i時增加孤點數for(int i=1;i<=n;i++) ans[max(dis1[i],dis2[i])+1]++;ans[0]=1;for(int i=1;i<=n;i++){ans[i]+=ans[i-1];cout<<(i>dep[root2] ? n : ans[i])<<" \n"[i==n];}
}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf1775D

題意

給定n個節點,若gcd(ai,aj)!=1gcd(a_i,a_j)!=1gcd(ai?,aj?)!=1ai,aja_i,a_jai?,aj?之間存在一條無向邊,且所有邊權都為1,給定兩點,求這兩點的最短路上的節點個數已經路徑

1≤n≤3?1051 \leq n \leq 3 \cdot 10^51n3?105
1≤ai≤3?1051 \leq a_i \leq 3 \cdot 10^51ai?3?105

思路

  • 考慮暴力做法,枚舉所有i,ji,ji,j對其求gcd后建邊后跑最短路,則時間復雜度是O(n2log)O(n^2log)O(n2log)不肯通過,考慮優化發現所有具備同一個因數的點都會連一條邊,不妨將每個因數建立虛點,將所有包含此因數的點對其連邊建圖,這樣做時間復雜度為O(nn)O(n \sqrt n)O(nn?),但實際上我們只需要關注質因數即可,兩個不互質的數一定有共同的質因數,這樣時間復雜度為O(nlogn)O(nlogn)O(nlogn)
  • 具體做法為對于所有aia_iai?分解質因數,然后將其與質因數連邊,一條邊權為1的出邊,一條邊權為0的入邊,然后跑dij求最短路即可

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=3e5+10;
struct edge{int v,w;
};
vector<edge>e[N<<1];void solve()
{int n;cin>>n;vector<int>a(n+1);for(int i=1;i<=n;i++) cin>>a[i];int st,ed;cin>>st>>ed;for(int i=1;i<=n;i++){int x=a[i];for(int j=2;j*j<=x;j++){if(x%j==0){while(x%j==0) x/=j;e[i].pb({j+N,1});e[j+N].pb({i,0});}}if(x!=1){e[i].pb({x+N,1});e[x+N].pb({i,0});}}priority_queue<PII,vector<PII>,greater<PII>>q;vector<int>dis(N<<1,inf);dis[st]=0;q.push({0,st});vector<int>vis(N<<1);map<int,int>last;while(!q.empty()){auto [cost,cur]=q.top();q.pop();if(vis[cur]) continue;vis[cur]=1;for(auto [v,w]:e[cur]){if(cost+w<dis[v]){last[v]=cur;dis[v]=cost+w;q.push({dis[v],v});}}}if(dis[ed]==inf) {cout<<-1<<endl;return;}vector<int>path;auto dfs=[&](auto &&dfs,int u)->void{if(u<N) path.pb(u);if(u==st) return;dfs(dfs,last[u]);};dfs(dfs,ed);reverse(all0(path));cout<<path.size()<<endl;for(auto t:path) cout<<t<<" ";
}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf118E

題意

給定一張nnn個點,mmm條邊的無向圖,是否存在一種將其變為有向圖的方法,使該圖是一個強連通分量

思路

若圖中存在割邊則一定無解,使用tarjan判斷圖中是否有割邊,可以發現有向邊的構造方法恰為tarjan的訪問順序

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=2e6+10;
vector<int>head(N,-1);
int idx=0;
struct edge{int to,next;
}e[N];int cnt;
int low[N],dfn[N],tot;
vector<PII>ans;void add(int u,int v)
{e[idx].to=v;e[idx].next=head[u];head[u]=idx++;
}void tarjan(int x,int fa)
{low[x]=dfn[x]=++tot;for(int i=head[x];~i;i=e[i].next){int y=e[i].to;if(y==fa) continue;if(!dfn[y]){tarjan(y,x);low[x]=min(low[x],low[y]);ans.pb({x,y});if(low[y]>dfn[x]) cnt++;}else if(dfn[y]<dfn[x]){low[x]=min(low[x],dfn[y]);ans.pb({x,y});}}
}void solve()
{int n,m;cin>>n>>m;for(int i=1;i<=m;i++){int a,b;cin>>a>>b;add(a,b);add(b,a);}tarjan(1,0);if(cnt) {cout<<0<<endl;return;}for(auto [x,y]:ans){cout<<x<<" "<<y<<endl;}}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf999E

題意

nnn個點,mmm條邊的有向圖,如果要滿足點sss可以到達所有點,需要添加幾條邊

思路

  • 對于一個強連通分量內的點只要可以到達其中一個,那么全部都可達
  • 觀察樣例可以發現答案即為縮點后入度為0的點的個數
  • 但需要注意s點所在連通塊不納入計算

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=5010;
vector<int>e[N];
int dfn[N],low[N],tot;
int stk[N],instk[N],top;
int scc[N],siz[N],cnt;vector<int>e1[N];void tarjan(int x)
{dfn[x]=low[x]=++tot;stk[++top]=x;instk[x]=1;for(auto ed:e[x]){if(!dfn[ed]){tarjan(ed);low[x]=min(low[x],low[ed]);}else if(instk[ed]){low[x]=min(low[x],dfn[ed]);}}if(dfn[x]==low[x]){int y;cnt++;do{y=stk[top--];instk[y]=0;scc[y]=cnt;++siz[cnt];}while(y!=x);}
}void solve()
{int n,m,s;cin>>n>>m>>s;for(int i=1;i<=m;i++){int a,b;cin>>a>>b;e[a].pb(b);}for(int i=1;i<=n;i++){if(!dfn[i]) tarjan(i);}//cout<<cnt<<endl;vector<int>din(n+1);for(int i=1;i<=n;i++){for(auto ed:e[i]){if(scc[ed]!=scc[i]){e1[scc[i]].pb(scc[ed]);din[scc[ed]]++;}}}int ans=0;vector<int>st(n+1);for(int i=1;i<=cnt;i++){if(i==scc[s]) continue;if(!din[i]){if(!st[i]) ans++;st[i]=1;}}cout<<ans<<endl;}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf25c

題意

給定nnn個點的最短距離矩陣(1≤n≤300)(1 \leq n \leq 300)(1n300),以及k條路徑,代表新建一條aaabbb邊權為ccc的路徑,求每次新建路徑之后所有點對的最短路之和

思路

由數據范圍不難想到floyd,若每次新建路徑邊權小于之前的邊權,就嘗試對所有經過a,ba,ba,b點和b,ab,ab,a點的最短路徑進行更新

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  void solve()
{int n;cin>>n;vector<vector<ll>>dis(n+1,vector<ll>(n+1));for(int i=1;i<=n;i++){for(int j=1;j<=n;j++) cin>>dis[i][j];}ll ans=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++) ans+=dis[i][j];}int m;cin>>m;while(m--){ll a,b,c;cin>>a>>b>>c;if(c>=dis[a][b]) {cout<<ans<<" ";continue;}dis[a][b]=dis[b][a]=c;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j) continue;dis[i][j]=min(dis[i][j],dis[i][a]+dis[a][b]+dis[b][j]);dis[i][j]=min(dis[i][j],dis[i][b]+dis[b][a]+dis[a][j]);}}ans=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++) ans+=dis[i][j];}cout<<ans<<" ";}
}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf1272E

題意

給定n個元素的數組,若i+ai≤ni+a_i \leq ni+ai?niiii+aii+a_ii+ai?之間存在一條代價為1的邊,若i?ai≥1i-a_i \geq 1i?ai?1則則iiii?aii-a_ii?ai?之間存在一條代價為1的邊,對于每個aia_iai?求到達與其奇偶性不同的點的最小步數

思路

  • 考慮多源bfs,要求解偶數點到奇數點的最小步數,從所有奇數點出發,走反邊跑bfs,奇數點到偶數點同理,相反即可

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=2e5+10;vector<int>e[N];void solve()
{int n;cin>>n;vector<int>a(n+1);for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){if(i+a[i]<=n) e[i+a[i]].pb(i);if(i-a[i]>=1) e[i-a[i]].pb(i);}vector<int>ans(n+1,-1),dis(n+1,1e9);queue<int>q;auto bfs=[&](){while(!q.empty()){auto t=q.front();q.pop();for(auto ed:e[t]){if(dis[t]+1<dis[ed]){dis[ed]=dis[t]+1;q.push(ed);}}}};for(int i=1;i<=n;i++){if(a[i]%2==0){q.push(i);dis[i]=0;}}bfs();for(int i=1;i<=n;i++){if(a[i]&1) ans[i]=dis[i];}fill(all(dis),1e9);for(int i=1;i<=n;i++){if(a[i]%2){q.push(i);dis[i]=0;}}bfs();for(int i=1;i<=n;i++){if(a[i]%2==0) ans[i]=dis[i];}for(int i=1;i<=n;i++) cout<<(ans[i]==1e9?-1:ans[i])<<" \n"[i==n];}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

cf1872F

題意

nnn個動物,其害怕的動物為aia_iai?,其價值為cic_ici?,如果一個動物被賣出時其害怕的動物還沒有被賣出,則可以得到2?ci2*c_i2?ci?的收益,反之得到cic_ici?的收益,求一個排列代表可以獲得最大收益的賣出動物的順序

思路

我們把每個點向其害怕的點連一條出邊,由于有n個點n條邊,且每個點只有一條出邊,所以圖中必定有環,不難發現對于不在環內的點按拓撲序賣出更優,而對于在環內的點,貪心的想一定最后賣cic_ici?最小的點,這樣環上的其他點都能得到2?ci2*c_i2?ci?的收益

  • 這題顯然用拓撲排序做更快,自己用tarjan搞了半天,其實tarjan有一個很重要的性質,其scc出棧的順序就是逆拓撲序,所以我們可以找到環上價值最小的點,將其加入答案數組中,由于這樣做為逆拓撲排序,最后reverse輸出即可

代碼

#include<bits/stdc++.h>#define ull unsigned long long 
#define ll long long
#define inf 1e9
#define INF 1e18
#define lc p<<1
#define rc p<<1|1
#define endl '\n'
#define all(a) a.begin()+1,a.end()
#define all0(a) a.begin(),a.end()
#define lowbit(a) (a&-a)
#define fi first
#define se second
#define pb push_back
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endlusing namespace std;
const double eps=1e-6;
typedef pair<int,int>PII;
typedef array<int,3>PIII;
mt19937_64 rnd(time(0));  const int N=1e5+10;
vector<int>e[N];int dfn[N],low[N],tot;
int stk[N],instk[N],top;
int scc[N],siz[N],cnt;int c[N];vector<int>ans;void tarjan(int x)
{dfn[x]=low[x]=++tot;stk[++top]=x;instk[x]=1;for(auto ed:e[x]){if(!dfn[ed]){tarjan(ed);low[x]=min(low[x],low[ed]);}else if(instk[ed]){low[x]=min(low[x],dfn[ed]);}}if(dfn[x]==low[x]){int y;++cnt;vector<int>circle;do{y=stk[top--];instk[y]=0;circle.pb(y);scc[y]=cnt;++siz[cnt];//cout<<y<<endl;}while(y!=x);int len=circle.size();int mn=1e9;for(auto x:circle) mn=min(mn,c[x]);int pos=-1;for(int i=0;i<len;i++) if(c[circle[i]]==mn) {pos=i;break;}for(int i=pos;i<len;i++) ans.pb(circle[i]);for(int i=0;i<pos;i++) ans.pb(circle[i]);}}void solve()
{int n;cin>>n;for(int i=1;i<=n;i++){dfn[i]=low[i]=0;stk[i]=instk[i]=0;scc[i]=siz[i]=0;tot=top=cnt=0;c[i]=0;ans.clear();e[i].clear();}for(int i=1;i<=n;i++){int x;cin>>x;e[i].pb(x);}for(int i=1;i<=n;i++) cin>>c[i];for(int i=1;i<=n;i++){if(!dfn[i]) tarjan(i);}reverse(all0(ans));for(auto t:ans) cout<<t<<" ";cout<<endl;}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--)solve();return 0;
}

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

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

相關文章

自定義線程

每個程序至少有一個線程 —— 主線程 主線程是程序的起點&#xff0c;你可以從它開始創建新的線程來執行任務。為此&#xff0c;你需要創建自定義線程&#xff0c;編寫在線程中執行的代碼&#xff0c;并啟動它。 通過繼承創建自定義線程 創建新線程有兩種主要方式&#xff1a;繼…

2025真實面試試題分析-安卓客戶端開發

以下是對安卓客戶端開發工程師面試問題的分類整理、領域占比分析及高頻問題精選&#xff08;基于??85道問題&#xff0c;總出現次數118次??&#xff09;。按技術領域整合為??7大核心類別??&#xff0c;按占比排序并精選高頻問題標注優先級&#xff08;1-5&#x1f31f;…

算法學習筆記:29.拓撲排序——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

拓撲排序&#xff08;Topological Sorting&#xff09;是一種針對有向無環圖&#xff08;DAG&#xff09;的線性排序算法&#xff0c;它將圖中的頂點按照一定規則排列&#xff0c;使得對于圖中的任意一條有向邊 u→v&#xff0c;頂點 u 都排在頂點 v 之前。拓撲排序在任務調度、…

利用Web3加密技術保障您的在線數據安全

在這個信息爆炸的數字化時代&#xff0c;保護個人和企業數據安全變得尤為重要。Web3技術以其去中心化和加密特性&#xff0c;為在線數據安全提供了新的解決方案。本文將探討Web3技術如何通過加密技術保障您的在線數據安全&#xff0c;并介紹如何有效利用這些技術。 什么是Web3技…

Vue實現el-checkbox單選并回顯選中

先說需求 我要在頁面進行checkbox單選并回顯 第一步先把基本的頁面寫好噢&#xff1a;vue代碼&#xff1a;別忘了寫change啊<el-form-item label"按鈕顏色:" prop"menuColor"><el-checkbox-group v-model"buttonColor" change"bin…

動態規劃--序列找優問題【1】

一、說明 動態規劃似乎針對問題很多&#xff0c;五花八門&#xff0c;似乎每一個問題都有一套具體算法。其實不是的&#xff0c;動態規劃只有兩類&#xff1a;1&#xff09;針對圖的路徑問題 2&#xff09;針對一個序列的問題。本篇講動態規劃針對序列的算法范例。 二、動態規劃…

獨家|百度副總裁尚國斌即將離職,此前統籌百度地圖;行業搜索及智能體業務總經理謝天轉崗IDG

百度人事再變動。作者|文昌龍編輯|楊舟據「市象」了解&#xff0c;近期&#xff0c;百度副總裁尚國斌即將離職。公開資料顯示&#xff0c;尚國斌2010年畢業于南開大學&#xff0c;2012年加入百度&#xff0c;先后在商業分析部、集團戰略辦、智能駕駛事業群工作。尚國斌同樣也在…

Qt 網絡編程進階:HTTP 客戶端實現

在 Qt 應用程序中&#xff0c;實現高性能、可靠的 HTTP 客戶端是常見需求。Qt 提供了豐富的網絡模塊&#xff0c;包括 QNetworkAccessManager、QNetworkRequest 和 QNetworkReply 等類&#xff0c;用于簡化 HTTP 通信。本文將深入探討 Qt 網絡編程中 HTTP 客戶端的進階實現&…

Python Requests-HTML庫詳解:從入門到實戰

一、庫簡介 Requests-HTML是Python中集網絡請求與HTML解析于一體的全能型庫&#xff0c;由知名開發者Kenneth Reitz團隊維護。它完美結合了Requests的易用性和Parsel的選擇器功能&#xff0c;并內置JavaScript渲染引擎&#xff0c;特別適合現代動態網頁抓取。最新版本&#xf…

基于springboot的小區車位租售管理系統

博主介紹&#xff1a;java高級開發&#xff0c;從事互聯網行業六年&#xff0c;熟悉各種主流語言&#xff0c;精通java、python、php、爬蟲、web開發&#xff0c;已經做了六年的畢業設計程序開發&#xff0c;開發過上千套畢業設計程序&#xff0c;沒有什么華麗的語言&#xff0…

Kafka 如何優雅實現 Varint 和 ZigZag 編碼

ByteUtils 是 Kafka 中一個非常基礎且核心的工具類。從包名 common.utils 就可以看出&#xff0c;它被廣泛用于 Kafka 的各個模塊中。它的主要職責是提供一套高效、底層的靜態方法&#xff0c;用于在字節緩沖區 (ByteBuffer)、字節數組 (byte[]) 以及輸入/輸出流 (InputStream/…

局域網 IP地址

很多童鞋搞不清楚局域網ip是什么? 什么是局域網 IP 地址? 局域網 IP 地址,也稱為 私有 IP 地址(Private IP Address),是用于在局域網內部標識設備的地址。這些地址不能直接在互聯網上被訪問,通常由路由器自動分配,用于設備之間的內部通信。 局域網 IP 地址的分類 根…

k8s的service、deployment、探針詳解

1.k8s組成圖2.service和deployment的流量轉發圖# Deployment 定義容器端口 apiVersion: apps/v1 kind: Deployment metadata:name: myapp spec:template:spec:containers:- name: nginximage: nginxports:- containerPort: 80 # 容器監聽 80name: http # 端口命名&…

【PostgreSQL教程】PostgreSQL中json類型與jsonb類型的區別

博主介紹:?全網粉絲23W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

牛客刷題記錄01

除2&#xff01; 目錄 除2&#xff01; 題目描述&#xff1a; ?編輯 題目解析&#xff1a; 代碼實現&#xff1a; 數組中兩個字符串的最小距離__牛客網 題目描述&#xff1a; 題目解析&#xff1a; 代碼實現&#xff1a; 除2&#xff01; 題目描述&#xff1a; 給一個…

Docker Compose UI遠程訪問教程:結合貝銳花生殼實現內網穿透

對于很多剛接觸Docker的用戶來說&#xff0c;命令行操作總帶著一絲“勸退感”。尤其是要在Windows上部署服務、開放端口、配置參數時&#xff0c;稍有不慎就容易出錯。有沒有辦法像網頁后臺一樣&#xff0c;用圖形界面來管理Docker項目呢&#xff1f;答案是&#xff1a;有&…

HF83311_VB1/HF83311Q_VB1:高性能USB HiFi音頻解碼器固件技術解析

引言隨著高品質音頻體驗需求的不斷增長&#xff0c;音頻解碼器固件的性能和功能成為決定音頻設備品質的關鍵因素。本文將介紹一款基于XMOS XU316技術的高性能USB HiFi音頻解碼器固件——HF83311_VB1/HF83311Q_VB1&#xff0c;這是一款專為USB HiFi音頻應用設計的軟件解決方案。…

[ComfyUI] -入門1-ComfyUI 是什么?比 Stable Diffusion WebUI 強在哪?

ComfyUI 是一個開源的、節點可視化界面,用于構建與執行 Stable Diffusion 圖像生成流程。它把復雜的生成過程拆解為許多“節點”(如提示編碼、采樣器、控制網絡等),用戶通過連接節點,就能自由編排工作流 。這種設計適合開發者與進階用戶,更便于微調、多分支與復用流程。 …

[python][flask]flask接受get或者post參數

在 Flask 中&#xff0c;可以通過 request 對象來獲取客戶端通過 GET 或 POST 方法發送的參數。以下是如何在 Flask 中接收 GET 和 POST 參數的詳細說明&#xff1a;1. 接收 GET 參數GET 請求的參數通常通過 URL 的查詢字符串傳遞。例如&#xff0c;對于 URL http://example.co…

Creo 模塊眾多,企業如何按需靈活分配許可證資源?

在數字化設計與智能制造深入發展的當下&#xff0c;企業 CAD/CAE 工具的精細化管理越來越重要。Creo&#xff0c;作為 PTC 旗下一體化 3D CAD 平臺&#xff0c;以其模塊化、可擴展的產品架構&#xff0c;廣泛應用于機械、裝備、汽車、航空航天等行業。其豐富的模塊庫覆蓋建模設…