DAG 求u到v路径数

news/2024/9/28 5:30:33

DAG 求u到v的路径数

image

先拓扑排序求出每个点的顺序,再对每个起点 \(s\) 做 dp,遍历拓扑序的点,对 \(s\) 能到达的点做 dp 统计路径数,如果终点 \(t\) 拓扑序在 \(s\) 之前就说明没有路径。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 200005
const int mod=1e9+7;int n,m,qq;int cnt=0;
struct Edge{int to,next;
}edge[2*N];
int head[N];void add_edge(int u,int v){cnt++;edge[cnt].to=v;edge[cnt].next=head[u];head[u]=cnt;
} int in[N];
queue<int> q;vector<int> a;void topo_sort(){for(int i=1;i<=n;i++){if(!in[i]){q.push(i);}}while(!q.empty()){int x=q.front();q.pop();a.push_back(x);for(int i=head[x];i!=-1;i=edge[i].next){int y=edge[i].to;if(--in[y]==0){q.push(y);}}}
}int ans[N];void dp(int s){for(int i=1;i<=n;i++){ans[i]=0;} ans[s]=1;for(int i=0;i<a.size();i++){int x=a[i];if(ans[x]>0){//起点 s 能到这个点 for(int j=head[x];j!=-1;j=edge[j].next){ans[edge[j].to]+=ans[x];ans[edge[j].to]%=mod;	}}}
}int main(){ios::sync_with_stdio(false);cin>>n>>m>>qq;for(int i=1;i<=n;i++){head[i]=-1;} for(int i=1;i<=m;i++){int u,v;cin>>u>>v;add_edge(u,v);in[v]++;}topo_sort();for(int i=1;i<=qq;i++){int s,t;cin>>s>>t;dp(s);cout<<ans[t]<<"\n";	}return 0; 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/56367.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

string字符串

string字符串 1.翻转字符串 #include<bits/stdc++.h>using namespace std;int main(){ string s; getline(cin,s); /*方法1.reverse搭配迭代器 reverse(s.begin(),s.end()); cout<<s; */ /*方法2.反着输出 for(int i=s.length()-1;i>=0;i--){ cout<<s[i…

晶振并联的1M电阻

晶振并联的1M电阻 与晶振并联的1M电阻是什么用?为何有的有用,有的没有用?应该如何选择? 在实际的产品设计时,针对晶振部分的电路,你会发现会有下面2种电路,图1电路中,没有1M的电阻;图2电路中,晶振会并联一个1M的电阻。晶振电路的相关问题1M电阻具体是什么作用呢?为什…

利用分布式锁在ASP.NET Core中实现防抖

前言 在 Web 应用开发过程中,防抖(Debounce) 是确保同一操作在短时间内不会被重复触发的一种有效手段。常见的场景包括防止用户在短时间内重复提交表单,或者避免多次点击按钮导致后台服务执行多次相同的操作。无论在单机环境中,还是在分布式系统中都有一些场景需要使用它。…

加油站AI智能视频监控分析系统

加油站AI智能视频监控分析系统可以根据视频总流量分析技术,使优化算法实体模型替代人的眼睛,即时鉴别加油站内部的工作过程中的安全规范、员工行为准则等问题。加油站AI智能视频监控分析系统优化算法实体模型可以精确捕获违规操作,全年度24个小时无间断,各种不良行为并发送…

智能视频分析ai图像精准智能识别

智能视频分析ai图像精准智能识别包含图像解决、数字图像处理、行为识别、状态识别 、视频帧全自动监控分析,体现了智能视频分析ai图像精准智能识别的工作能力。根据智能视频分析ai图像精准智能识别,智能视频内嵌式识别专用工具可以分析监控视频监管下的图像,并将合理信息内容…

智慧水利河湖AI智能视频分析识别系统

智慧水利河湖AI智能视频分析识别系统运用视频结构型技术性,根据图像处理与分析,创建图像与图像叙述两者之间的投射关联,掌握视频图像中的內容,运用于水利管理方法情景。智慧水利河湖AI智能视频分析识别系统运用视频智能搜索分析,根据对非结构性原创设计视频数据信息的智能…

ai行为识别技术监控

ai行为识别技术监控系统软件是一种以行为识别技术为关键技术的深度学习算法,根据人工智能化神经元网络,构造大家的主要模块架构,ai行为识别技术监控 依据我们的轨迹测算各种各样健身运动行为,根据视频转码技术、流媒体播放技术、数字矩阵技术、云技术等,ai行为识别技术监控…

ai视频监控分析软件

ai视频监控分析软件助力生产安全是建筑行业遵循道德底线的重要保障。ai视频监控分析软件是根据人工智能化机器视觉科研开发的,合理地监控了人们的不正常个人行为和监控视频照片中的所有目标的行为跟状态,并传出了报警信息。ai视频监控分析软件连接音频输出设备可以在前面传出…