zoukankan      html  css  js  c++  java
  • 1090 highest price in supply chain

    p,r用double类型,pat多题如果用float会WA

    AC代码

    #include <vector>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    int main(){
        int n;
        double p,r;
        scanf("%d %lf %lf",&n,&p,&r);
        r /= 100.0;
        vector<int> s;
        vector<int> ret(n);
        vector<bool> vs(n,false);
        for(int i = 0;i < n;i++){
            int tmp;
            scanf("%d",&tmp);
            if(tmp == -1){
                ret[i] = 0;
                vs[i] = true;
            }
            s.push_back(tmp);
        }
        int max(0);
        for(int i = 0;i < s.size();i++){
            if(vs[i])
                continue;
            else{
                vector<int> tmp;
                int id(i);
                while(id != -1){
                    tmp.push_back(id);
                    id = s[id];
                    if(vs[id])
                        break;
                }
                for(int j = 0;j < tmp.size();j++){
                    vs[tmp[j]] = true;
                    ret[tmp[j]] = ret[id] + tmp.size() - j;
                }
                if(ret[tmp[0]] > max)
                    max = ret[tmp[0]];
            }
        }
        int count(0);
        for(int i = 0;i < ret.size();i++){
            if(ret[i] == max)
                count++;
        }
        printf("%.2lf %d
    ",p * pow(1+r,max),count);
        return 0;
    }
  • 相关阅读:
    http简记
    socket简介
    iOS代理
    ai作图小技能
    按钮切换
    关于ie8背景图片的平铺
    关于文本省略
    关于html table样式
    阿里巴巴iconfont使用方法(超级详细)
    办公电脑安装虚拟机基本就绪
  • 原文地址:https://www.cnblogs.com/Aldorado/p/5263780.html
Copyright © 2011-2022 走看看