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

郑州+高端网站建设百度集团总部在哪里

郑州+高端网站建设,百度集团总部在哪里,网上接单做网站,石家庄网站建设培训班4.有向无环的路径数 - 蓝桥云课 问题描述 给定 N 个节点 M 条边的有向无环图,请你求解有多少条 1 到 N 的路径。 由于答案可能很大,你只需要输出答案对 998244353 取模后的结果。 输入格式 第一行包含 2 个正整数 N,M,表示有向无环图的节…

4.有向无环的路径数 - 蓝桥云课

问题描述

给定 N 个节点 M 条边的有向无环图,请你求解有多少条 1 到 N 的路径。

由于答案可能很大,你只需要输出答案对 998244353 取模后的结果。

输入格式

第一行包含 2 个正整数 N,M,表示有向无环图的节点数和边数。

之后 M 行,每行给定 2 个正整数 u,v (ueqv 且 1≤u,v≤N),表示图中存在一条有向边 (u,v)。

输出格式

输出一行,包含一个整数,表示答案,答案对 998244353 取模后的结果。

样例输入

4 4
1 2
2 3
1 3
3 4

样例输出

2

评测数据规模

对于所有测评数据,1≤N,M≤1e5。

思路:

暴力搜
代码如下:
 

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,m,ans,tot;
const ll N = 1e5+10;
const ll mod = 998244353;
ll head[N];
struct Edge{ll next;ll to;
}e[N];
bool vis[N];
void add(ll u,ll v)
{tot++;e[tot].next = head[u];e[tot].to = v;head[u] = tot;
}
void dfs(ll x)
{if(x == n){ans++;ans = ans % mod;return;}ll u = head[x];while(u != -1){ll to = e[u].to;if(!vis[to]){vis[to] = true;dfs(to);vis[to] = false;	}u = e[u].next;}
}
int main(void)
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> m;for(ll i = 1 ; i <= n ; i++)head[i] = -1;for(ll i = 1 ; i <= m ; i++){ll u,v;cin >> u >> v;add(u,v);}vis[1] = true;dfs(1);cout << ans;return 0;} 

思路:

拓扑排序和dp‘

代码如下:

#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
ll n,m,ans,tot;
const ll N = 1e5+10;
const ll mod = 998244353;
ll head[N],rd[N],dis[N];
struct Edge{ll next;ll to;
}e[N];
bool vis[N];
void add(ll u,ll v)
{tot++;e[tot].next = head[u];e[tot].to = v;head[u] = tot;
}int main(void)
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);queue <ll> pq;cin >> n >> m;for(ll i = 1 ; i <= n ; i++)head[i] = -1;for(ll i = 1 ; i <= m ; i++){ll u,v;cin >> u >> v;add(u,v);rd[v]++;}bool flag = false;for(ll i = 1 ; i <= n ; i++){if(rd[i] == 0){pq.push(i);if(i == 1){dis[i] = 1;flag = true;}}}while(!pq.empty()){ll pos = pq.front();pq.pop();if(pos == 1 && !flag){dis[pos] = 1;flag = true;}ll u = head[pos];while(u != -1){ll to = e[u].to;rd[to]--;dis[to] = (dis[to] + dis[pos])%mod; if(rd[to] == 0){pq.push(to);}u = e[u].next;}	 }cout << dis[n];return 0;} 

http://www.dtcms.com/wzjs/287274.html

相关文章:

  • 怎么注册网自己的网站网络营销的重要性
  • 企业网站建设市场报价百度推广开户多少钱
  • 潜山网站建设谷歌浏览器app
  • 什么建站平台好seo推广方案
  • 自己做的网站怎么爬数据惠州百度seo排名
  • 网站建设与改善规划短期培训就业学校
  • 重庆网站建设就选承越如何搜索网页关键词
  • 上海企业网站建设制海外广告投放公司
  • 郑州网站开发比较好的网络公司千锋教育前端学费多少
  • 网站支付怎么做安全吗seo怎么才能优化好
  • 建设银行网站登录首页百度账号查询
  • 做网站哪个便宜seo排名的影响因素有哪些
  • 做公众号用什么网站吗北京最新疫情
  • wordpress博客福利网整站源码免费合作推广
  • 苏州知名高端网站建设网络公司长春seo排名
  • 如何让网站不被收录seo优化轻松seo优化排名
  • 泗水做网站seo优化排名技术百度教程
  • wordpress 插件 前端win7优化工具哪个好用
  • 广州网站优化系统域名注册信息查询
  • 啥网站都能看的浏览器快手seo
  • 乐清网站优化推广谷歌网页版入口
  • 网站的建设目标有哪些搜索引擎优化自然排名的优点
  • 集合视频网站资源怎么做哈尔滨seo公司
  • 自己的网站怎么做搜索引擎seo营销
  • 免费炫酷网站模板今天头条新闻100条
  • 高凡玉中国互联网协会合肥seo建站
  • gta5办公室网站建设中线下推广团队
  • 自己做链接网站seo建站优化推广
  • 网站开发日志周志广州营销课程培训班
  • 莆田的外贸网站公司网站设计公司