PAT (Advanced Level) 1106. Lowest Price in Supply Chain (25)

简单dfs

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std; const int maxn=+;
vector<int>g[maxn];
int n;
double P,r;
int ans_count=;
double ans_price=; void dfs(int x,double price)
{
if(g[x].size()==)
{
if(price<ans_price)
{
ans_count=;
ans_price=price;
}
else if(price==ans_price) ans_count++;
return;
} for(int i=;i<g[x].size();i++)
{
dfs(g[x][i],price*(+r/));
}
} int main()
{
scanf("%d",&n);
scanf("%lf%lf",&P,&r);
for(int i=;i<n;i++)
{
int num; scanf("%d",&num);
while(num--)
{
int x; scanf("%d",&x);
g[i].push_back(x);
}
} dfs(,P); printf("%.4lf %d\n",ans_price,ans_count); return ;
}
上一篇:初级算法 旋转图像


下一篇:PHP 使用reflection时的问题,以及解决方案