1090. Highest Price in Supply Chain

链接: https://www.nowcoder.com/questionTerminal/24429a3319e4466790e65a647130b118

来源:牛客网

这道题就是一个树的简单搜索。

在做这道题的时候,我发现它的示例输入是

9 1.80 1.00

1 5 4 4 -1 4 5 3 6

但是在计算的时候并不是1.00而是按照1.01来算的

最后的测试用例也是乱七八糟的,都不知道别人都是怎么会ac的。(所以我自己用eclipse测试了几组数据)

以下是我的java代码,用到了一个数组来保存层数,比BFS简单但是耗时稍微长一点。

import java.util.*;
import java.io.*;
public class Text{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        double p=sc.nextDouble();
        double r=sc.nextDouble();
        int []retail=new int[n];
        for(int i=0;i<n;i++)
            retail[i]=sc.nextInt();
        int []level=new int[n];
        int max=0;
        for(int i=0;i<n;i++)
        {
            int j=i;
            while(retail[j]!=-1)
            {
                j=retail[j];
                level[i]++;
                if(level[i]>max)
                	max=level[i];
            }
        }
        int count=0;
        for(int i=0;i<n;i++)
        	if(level[i]==max)
        		count++;
        double sum=p;
        for(int i=0;i<max;i++)
        	sum*=r;
        System.out.print(String.format("%.2f",sum)+" "+count);
    }
}

猜你喜欢

转载自blog.csdn.net/woshikf001/article/details/80487520