网站备案完成,深圳福田网站建设专业公司,学校官方网站的建设目标是什么,1+手机官网首页https://www.luogu.org/problem/show?pid3116 这道题目很水啊#xff0c;但是我没有1A#xff0c;而且wa了好多#xff1b; 题目意思我就不讲了#xff1b; 反正就是一个拓扑序dp#xff1b; 但是这道题目规定了起点是1#xff1b; 所以我一开始直接把1放进队列里然… https://www.luogu.org/problem/show?pid3116 这道题目很水啊但是我没有1A而且wa了好多 题目意思我就不讲了 反正就是一个拓扑序dp 但是这道题目规定了起点是1 所以我一开始直接把1放进队列里然后拓扑 就哇了 原因很简单 除了1以外还有很多入度为0的点 当然1的入度可能不为0没关系 如果我直接从1遍历 就会导致有些点的入度永远不为0 所以我们要先吧把的入度0的非1点先跑一遍拓扑 跑完后整个图只有1是入度为0的了 这样再从1开始跑 #includecstdio//cfb
#includeiostream
#includecstring
using namespace std;
struct cs{int to,next,A,B;}a[100001];
int head[101],s[101],q[105];
bool aa[101][20001],bb[101][20001];
int n,m,x,y,z,A,B,ll,l,r;
void init(int x,int y,int A,int B){ll;a[ll].toy;a[ll].AA;a[ll].BB;a[ll].nexthead[x];head[x]ll;
}
int main()
{scanf(%d%d,n,m);for(int i1;im;i){scanf(%d%d%d%d,x,y,A,B);init(x,y,A,B);s[y];}for(int i2;in;i)if(!s[i])q[r]i;while(rl){xq[l];for(int khead[x];k;ka[k].next){ya[k].to;if(!--s[y])q[r]y;}}q[1]1;aa[1][0]bb[1][0]1;r1; l0;while(rl){xq[l];for(int khead[x];k;ka[k].next){ya[k].to;s[y]--;if(!s[y])q[r]y;for(int i0;i10000;i){if(aa[x][i])aa[y][ia[k].A]1;if(bb[x][i])bb[y][ia[k].B]1;}}}for(int i0;i10000;i)if(aa[n][i]bb[n][i]){printf(%d,i);return 0;}printf(IMPOSSIBLE);
} 转载于:https://www.cnblogs.com/largecube233/p/6797930.html