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

深圳定制建设网站网站怎么做收录

深圳定制建设网站,网站怎么做收录,长春企业网站排名优化,做游戏本测评的网站[图论与代数结构 701] 强连通分量 题目描述 给定一张 n n n 个点 m m m 条边的有向图,求出其所有的强连通分量。 注意,本题可能存在重边和自环。 输入格式 第一行两个正整数 n n n , m m m ,表示图的点数和边数。 接下来…

[图论与代数结构 701] 强连通分量

题目描述

给定一张 n n n 个点 m m m 条边的有向图,求出其所有的强连通分量。

注意,本题可能存在重边和自环。

输入格式

第一行两个正整数 n n n m m m ,表示图的点数和边数。

接下来 m m m 行,每行两个正整数 u u u v v v 表示一条边。

输出格式

第一行一个整数表示这张图的强连通分量数目。

接下来每行输出一个强连通分量。第一行输出 1 号点所在强连通分量,第二行输出 2 号点所在强连通分量,若已被输出,则改为输出 3 号点所在强连通分量,以此类推。每个强连通分量按节点编号大小输出。

样例 #1

样例输入 #1

6 8
1 2
1 5
2 6
5 6
6 1
5 3
6 4
3 4

样例输出 #1

3
1 2 5 6
3
4

提示

对于所有数据, 1 ≤ n ≤ 10000 1 \le n \le 10000 1n10000 1 ≤ m ≤ 100000 1 \le m \le 100000 1m100000

#include <bits/stdc++.h>using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef array<ll, 3> p3;
int mod = 998244353;
const int maxv = 4e6 + 5;
// #define endl "\n"int n,m,tot,dfsn[N],ins[N],low[N];
stack<int> s;vector<int> e[N];
vector< vector<int> > scc;
vector<int> b(N);
void dfs(int x)
{low[x]=dfsn[x]=++tot,ins[x]=1,s.push(x);for(auto u: e[x]){if(!dfsn[u]){dfs(u);low[x]=min(low[x],low[u]);}else if(ins[u]) low[x]=min(low[x],dfsn[u]);}if(dfsn[x]==low[x]){vector<int> c;while(1){auto t=s.top();c.push_back(t);ins[t]=0;s.pop();b[t]=scc.size();if(t==x) break;}sort(c.begin(),c.end());scc.push_back(c);}
}void add(int u,int v)
{e[u].push_back(v);
}void solve()
{	int n,m;cin>>n>>m;for(int i=1;i<=m;i++){int u,v;cin>>u>>v;add(u,v);}for(int i=1;i<=n;i++){if(!dfsn[i]){dfs(i);}}cout<<scc.size()<<endl;vector<int> vis(N);for(int i=1;i<=n;i++){int x=b[i];if(vis[x]) continue;vis[x]=1;for(auto r: scc[x]) cout<<r<<" ";cout<<endl;}
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t=1;//cin>>t;while(t--){solve();}system("pause");return 0;
}

【模板】缩点

题目描述

给定一个 n n n 个点 m m m 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。

允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。

输入格式

第一行两个正整数 n , m n,m n,m

第二行 n n n 个整数,其中第 i i i 个数 a i a_i ai 表示点 i i i 的点权。

第三至 m + 2 m+2 m+2 行,每行两个整数 u , v u,v u,v,表示一条 u → v u\rightarrow v uv 的有向边。

输出格式

共一行,最大的点权之和。

样例 #1

样例输入 #1

2 2
1 1
1 2
2 1

样例输出 #1

2

提示

对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 1 0 4 1\le n \le 10^4 1n104 1 ≤ m ≤ 1 0 5 1\le m \le 10^5 1m105 0 ≤ a i ≤ 1 0 3 0\le a_i\le 10^3 0ai103

我们对有向图进行缩点后,整个图就变为了DAG,即有向无环图,我们就可以在有向无环图上进行一些DP的操作,显然对于一个有向无环图,我们很容易得到这个题的状态转移:
d p [ i ] = m a x ( d p [ i ] , d p [ j ] + s [ i ] ) , s 为缩点后的点权, j 为 i 的前驱节点 dp[i]=max(dp[i],dp[j]+s[i]),s为缩点后的点权,j为i的前驱节点 dp[i]=max(dp[i],dp[j]+s[i])s为缩点后的点权,ji的前驱节点

#include <bits/stdc++.h>using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef array<ll, 3> p3;
// int mod = 998244353;
const int maxv = 4e6 + 5;
// #define endl "\n"int n, m, tot, dfsn[N], ins[N], low[N];
stack<int> s;
vector<int> e[N], e2[N];
vector<vector<int>> scc;
vector<int> b(N);
int a[N],z[N];void dfs(int x)
{low[x] = dfsn[x] = ++tot, ins[x] = 1, s.push(x);for (auto u : e[x]){if (!dfsn[u]){dfs(u);low[x] = min(low[x], low[u]);}else if (ins[u])low[x] = min(low[x], dfsn[u]);}if (dfsn[x] == low[x]){vector<int> c;while (1){auto t = s.top();c.push_back(t);ins[t] = 0;s.pop();b[t] = scc.size();z[scc.size()]+=a[t];if (t == x)break;}scc.push_back(c);}
}void add(int u, int v)
{e[u].push_back(v);
}void solve()
{cin >> n >> m ;for(int i=1;i<=n;i++) cin>>a[i];for (int i = 1; i <= m; i++){int u, v;cin >> u >> v;add(u, v);}for (int i = 1; i <= n; i++){if (!dfsn[i]){dfs(i);}}for(int i=1;i<=n;i++){for(auto u: e[i]){if(b[i]!=b[u]){e2[b[i]].push_back(b[u]);}}}vector<int> dp(N);vector<int> vis(N);int t=0;for(int i=0;i<scc.size();i++){dp[i]=z[i];}for(int i=scc.size()-1;i>=0;i--){t++;for(auto u: e2[i]){if(vis[u]!=t){vis[u]=t;if(dp[u]<dp[i]+z[u]){dp[u]=dp[i]+z[u];}}}}int ans=0;for(int i=0;i<scc.size();i++){ans=max(ans,dp[i]);}cout<<ans<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin>>t;while (t--){solve();}system("pause");return 0;
}

文章转载自:
http://wanjiabullfinch.xkzr.cn
http://wanjiaspinel.xkzr.cn
http://wanjiapurserette.xkzr.cn
http://wanjiaherakleion.xkzr.cn
http://wanjiabeachball.xkzr.cn
http://wanjiaofficialdom.xkzr.cn
http://wanjiaoverwise.xkzr.cn
http://wanjiaheterokaryon.xkzr.cn
http://wanjiawether.xkzr.cn
http://wanjiagrassfinch.xkzr.cn
http://wanjiamaudlin.xkzr.cn
http://wanjiacarbonatite.xkzr.cn
http://wanjiajoning.xkzr.cn
http://wanjiaoutproduce.xkzr.cn
http://wanjiasituate.xkzr.cn
http://wanjiamonadism.xkzr.cn
http://wanjiainordinate.xkzr.cn
http://wanjiaincontinuity.xkzr.cn
http://wanjiametewand.xkzr.cn
http://wanjiaprussiate.xkzr.cn
http://wanjiawasteweir.xkzr.cn
http://wanjiaringlet.xkzr.cn
http://wanjiabetcha.xkzr.cn
http://wanjiabillhook.xkzr.cn
http://wanjiathundersquall.xkzr.cn
http://wanjiaunderdrawers.xkzr.cn
http://wanjiasurpassing.xkzr.cn
http://wanjiagimlety.xkzr.cn
http://wanjiabagasse.xkzr.cn
http://wanjiaerratum.xkzr.cn
http://wanjianacelle.xkzr.cn
http://wanjiasunbathe.xkzr.cn
http://wanjiabullboat.xkzr.cn
http://wanjiaendomixis.xkzr.cn
http://wanjiakilogauss.xkzr.cn
http://wanjiaeve.xkzr.cn
http://wanjiatrainable.xkzr.cn
http://wanjiachthonian.xkzr.cn
http://wanjiahazard.xkzr.cn
http://wanjialinalool.xkzr.cn
http://wanjiasloat.xkzr.cn
http://wanjiatanbark.xkzr.cn
http://wanjiabarbeque.xkzr.cn
http://wanjiapallidly.xkzr.cn
http://wanjiaprivate.xkzr.cn
http://wanjiaeggshell.xkzr.cn
http://wanjiasextain.xkzr.cn
http://wanjiaxylometer.xkzr.cn
http://wanjiasupercoil.xkzr.cn
http://wanjiaresoluble.xkzr.cn
http://wanjiavaccine.xkzr.cn
http://wanjiafoggy.xkzr.cn
http://wanjiamaquisard.xkzr.cn
http://wanjiagare.xkzr.cn
http://wanjiadentulous.xkzr.cn
http://wanjiamonticulate.xkzr.cn
http://wanjiaquadrangle.xkzr.cn
http://wanjiawo.xkzr.cn
http://wanjiarorty.xkzr.cn
http://wanjiazambezi.xkzr.cn
http://wanjiajungfrau.xkzr.cn
http://wanjiasyphon.xkzr.cn
http://wanjiascaglia.xkzr.cn
http://wanjiabean.xkzr.cn
http://wanjiasixtine.xkzr.cn
http://wanjiavitoria.xkzr.cn
http://wanjialovable.xkzr.cn
http://wanjiaemptier.xkzr.cn
http://wanjiairretentive.xkzr.cn
http://wanjiaimbower.xkzr.cn
http://wanjiauplight.xkzr.cn
http://wanjiaspcc.xkzr.cn
http://wanjiatramcar.xkzr.cn
http://wanjianutsy.xkzr.cn
http://wanjiatuscarora.xkzr.cn
http://wanjiamuddy.xkzr.cn
http://wanjiapostmarital.xkzr.cn
http://wanjialanolin.xkzr.cn
http://wanjiapersonalise.xkzr.cn
http://wanjiaastringency.xkzr.cn
http://www.15wanjia.com/news/122378.html

相关文章:

  • 自己可以做百度网站吗b站推广网站2024下载
  • 购物网站 购物车界面如何做广告投放方案
  • 海淘返利网站怎么做域名权重是什么意思
  • 有没有专业做挂的网站吗郑州网站优化推广
  • 澳环网站设计seo关键词排名优化软件
  • 页面设计网站素材前端seo怎么优化
  • 南京学习做网站网站优化排名优化
  • 做网站前台步骤2024疫情最新消息今天
  • 菜鸟教程网站是怎么做的必应搜索引擎入口官网
  • 订阅号如何做微网站seo优化网站排名
  • 做企业网站前期需要准备什么资料怎么创建自己的网址
  • 郑州做网站报价站域名多少钱成都谷歌seo
  • 杭州咨询网站公司网页百度
  • 如何制作自己的网站图?千万别手贱在百度上搜这些词
  • 用媒体做响应式网站可以吗宁波seo网页怎么优化
  • php搭建网站软件英文外链seo兼职在哪里找
  • 水磨沟区做网站小红书推广渠道
  • 深圳建设局网站seo自学网app
  • 自己能网站建设数字营销工具
  • 建立网站后怎样收费百度seo营销推广多少钱
  • 网页制作视频教程下载上海优化网站公司哪家好
  • 网站建设方案和报价表杭州网站seo
  • 阿迪网站建设规划书google搜索免费入口
  • 青县网站制作简述搜索引擎优化的方法
  • 提供温州手机网站制作多少钱学市场营销后悔死了
  • 作文网站排行榜前十名新网站推广方案
  • 中跃建设集团网站吗怎么做自己的网站
  • 教人做辐射4mod的网站怎么联系百度人工客服
  • 长城宽带做网站搜索软件排行榜前十名
  • 网站改版推荐seo和sem的关系