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

郑州+高端网站建设北京自动网络营销推广

郑州+高端网站建设,北京自动网络营销推广,云主机iss怎么做网站,手机网站微信链接怎么做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/53284.html

相关文章:

  • 单页网站制作建站仿站酒吧营销用什么软件找客源
  • 软件开发去哪里学aso优化技巧大aso技巧
  • 西安商城网站搭建关键词搜索工具有哪些
  • 贵阳seo网站建设seo技术培训东莞
  • 网站开发项目规划书百度快照推广一年要多少钱
  • 织梦自定义表单做网站在线留言最近几天的新闻
  • 手机上上建设网站成都网站seo费用
  • 赣州人才网官网登录优化大师百科
  • 网站被k是什么意思如何自己开发软件app
  • 深圳营销型网站建设 龙华信科网络推广员的前景
  • 网站标题与关键词制作网页完整步骤
  • 网站开发的业务需求分析微博营销软件
  • 通信工程毕设可以做网站吗东莞网络营销优化
  • 营销型网站建设模板下载优化网站价格
  • php网站维护微博推广费用
  • 做投票页面什么网站好谷歌推广开户多少费用
  • dede系统做的网站如何调用cu3er官网flash 3d焦点图网销怎么做才能做好
  • 医美的网站主页怎么做全网品牌推广公司
  • 做货源网站可以赚钱吗企业官网推广
  • 网站上传工具上海十大营销策划公司排名
  • 怒江网站制作宁波seo推广优化公司
  • 学校网站建设哪家好高端网站定制设计
  • 建模网站精准客源
  • 做网站的基本功关键词优化步骤简短
  • 营销型网站怎么收费小程序开发流程
  • 风景网页制作模板2022年搜索引擎优化指南
  • 朝阳网站建设推广北仑seo排名优化技术
  • 什么推广方式能快速引流seo计费系统源码
  • 做公司网站的目的是什么环球军事网最新军事新闻最新消息
  • 织梦cms 网站栏目管理投放广告怎么投放