QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#379099#3704. Travelucup-team1251WA 4ms32492kbC++171.6kb2024-04-06 16:12:012024-04-06 16:12:02

Judging History

This is the latest submission verdict.

  • [2024-04-06 16:12:02]
  • Judged
  • Verdict: WA
  • Time: 4ms
  • Memory: 32492kb
  • [2024-04-06 16:12:01]
  • Submitted

answer

#include <bits/stdc++.h>
#define int long long
#define lson k<<1
#define rson (k<<1)|1
#define debug cout<<666<<endl;
using namespace std;
const int N=1e6+5;
int st[N];
typedef pair<int,int>PII;

int f[N];
vector<int>E[N];
int n;
int u[N],v[N];
void bfs()
{
	queue<int>q;
	q.push(1);
	f[1]=0;
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		int size=E[x].size();
		for(int i=0;i<size;i++)
		{
			int to=E[x][i];
			if(f[to]!=0)
			{
				continue;
			}
			q.push(to);
			f[to]=f[x]+1;
		}
	}
}
void vision()
{
	
	int n,m,a,b;
	while(cin>>n>>m>>a>>b)
	{
		for(int i=1;i<=n;i++) f[i]=0;
		map<PII,int>mp;
		for(int i=1;i<=m;i++)
		{
			cin>>u[i]>>v[i];
			if(mp[{u[i],v[i]}]==1) continue;
			mp[{u[i],v[i]}]=1;
			mp[{v[i],u[i]}]=1;
			E[u[i]].push_back(v[i]);
			E[v[i]].push_back(u[i]);
		}
		if(mp[{1,n}]==0)
		{
			bfs();
			// cout<<f[n]<<"\n";
			long long ans=min(1ll*b,1ll*f[n]*a);
			cout<<ans<<"\n";
		}
		else 
		{
			set<int>s,s1;
			for(int i=1;i<=n;i++) s1.insert(i),f[i]=0;
			s.insert(1);
			s1.erase(1);
			int cnt=0;
			while(s.size()!=0)
			{
				cnt++;
				set<int>s2;
				for(auto u:s)
				{
					for(auto v:E[u])
					{
						if(s1.count(v)==1)
						{
							s1.erase(v);
							s2.insert(v);
						}
					}
				}
				s.clear();
				for(auto v:s1)
				{
					f[v]=cnt;
					s.insert(v);
				}
				s1.clear();
				for(auto v:s2)
				{
					s1.insert(v);
				}
			}
			if(f[n]==0) cout<<a<<"\n";
			else cout<<min(f[n]*b,a)<<"\n";		
		}	
		for(int i=1;i<=n;i++)E[i].clear();
	}
	return ;
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int t=1;
	// cin>>t;
	while(t--){
		vision();
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 4ms
memory: 32492kb

input:

3 2 1 3
1 2
2 3

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Accepted
time: 0ms
memory: 30224kb

input:

3 2 2 3
1 2
2 3

output:

3

result:

ok 1 number(s): "3"

Test #3:

score: -100
Wrong Answer
time: 2ms
memory: 28336kb

input:

2 0 1 1

output:

0

result:

wrong answer 1st numbers differ - expected: '1', found: '0'