#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int mod = 998244353;
typedef long long ll;
typedef unsigned long long ull;
const ll INF = 1e18;
ll n,m;
vector<int>e[N];
bool vis[N];
bool a[N];
void dfs(ll u,ll fa)
{
for(auto v:e[u])
{
if(a[v])continue;
if(vis[v])continue;
vis[v]=true;
dfs(v,u);
}
}
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;
e[u].push_back(v);
e[v].push_back(u);
}
dfs(1,0);
if(a[1]==1)
{
cout<<"No\n";
}
else if(vis[n])
{
cout<<"Yes\n";
}
else cout<<"No\n";
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
// cin>>t;
while(t--)
{
solve();
}
return 0;
}
简单dfs题

京公网安备 11010502036488号