POJ 1545 Galactic Import G++ bfs
程序员文章站
2022-07-15 10:46:08
...
#include <iostream>
#include <cstdio>
#include <string>
#include <queue>
#include <cstring>
#include <algorithm>
using namespace std;
//英语 看博友分析 程序为准 抄博友程序 bfs
double value[30];
int dis[30];
int g[100][100];
int main()
{
while(1)
{
int n;
cin>>n;
if(cin.eof()==1)
{
break;
}
memset(g,0,sizeof(g));
memset(dis,-1,sizeof(dis));
for(int i=0;i<n;i++)
{
string a,b;
double d;
cin>>a>>d>>b;
int from=a[0]-'A';
value[from]=d;
for(int i=0;i<b.size();i++)
{
int to;
if(b[i]=='*')
{
to=26;
}else
{
to=b[i]-'A';
}
g[from][to]=g[to][from]=1;
}
}
queue<int> que;
que.push(26);
dis[26]=1;
while(que.empty()!=1)
{
int t=que.front();
que.pop();
for(int i=0;i<=26;i++)
{
if(i!=t&& g[t][i]==1)
{
if(dis[i]==-1 ||dis[i]>dis[t]+1)
{
dis[i]=dis[t]+1;
que.push(i);
}
}
}
}
double jg=-1;
int jl=-1;
for(int i=0;i<26;i++)
{
if(dis[i]!=-1)
{
if(dis[i]>2)
{
int t=dis[i]-2;
while(t--)
{
value[i]=value[i]*0.95;
}
}
if(jg<value[i])
{
jg=value[i];
jl=i;
}
}
}
cout<<"Import from "<<(char)(jl+'A')<<endl;
}
return 0;
}
上一篇: git 版本回退