比赛 20150422 评测结果 WTTTTTTTTTT
题目名称 背驮式行走 最终得分 0
用户昵称 Satoshi 运行时间 10.011 s
代码语言 C++ 内存使用 0.81 MiB
提交时间 2015-04-22 09:08:00
显示代码纯文本
#include <fstream>
#include <vector>
using namespace std;
ifstream in("piggyback.in");
ofstream out("piggyback.out");
int B,E,P,N,M;
int deep=0;
int best=9999999;
int ans1=0,ans2=0;
vector<int> g[40001];
bool l[40001]={0};
void clean()
{
	int i;
	for(i=1;i<=N;i++)l[i]=0;
	best=9999999;
	deep=0;
}
int DFS(int x)
{
	int i;
	//out<<x<<' ';
	if(x==N)
	{
		if(deep<best)best=deep;
		return 0;
	}
	for(i=0;i<g[x].size();i++)
	{
		int v=g[x][i];
		if(!l[v])
		{
		   deep++;
		   l[v]=1;
		   DFS(v);
		   l[v]=0;
		   deep--;
		}
	}
}
int main()
{
	int i,j,a,b;
	in>>B>>E>>P>>N>>M;
	for(i=1;i<=M;i++)
	{
		in>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
		//out<<a<<' '<<b<<endl;
	}
	DFS(1);
	ans1=best*B;
	clean();
	DFS(2);
    ans2=best*E;
	out<<ans1+ans2<<endl;
	return 0;
}