zoukankan      html  css  js  c++  java
  • PAT A1079 Total Sales of Supply Chain (25分)(最后一个样例超时)


    本题的重点是利用层序遍历维持树每个结点的深度数据的更新,这是层序遍历的一个重要应用。
    注意:计算叶子节点的次方时用#include<math.h>下的pow函数,不然最后一个样例会超时

    #include<cstdio>
    #include<vector>
    #include<queue>
    #include<math.h>
    using namespace std;
    const int N = 100010;
    int n;
    double p,r;
    struct node{
        bool isretail=false;
        int amount=0;
        int deep = 0;
        vector<int> child;
    }Node[N];
    void updatedeep(int root){
        queue<int> Q;
        Q.push(root);
        Node[root].deep = 0;
        while(!Q.empty()){
            int front = Q.front();
            Q.pop();
            for(int i = 0;i<Node[front].child.size();i++){
                int child = Node[front].child[i];
                Node[child].deep = Node[front].deep+1;
                Q.push(child);
            }
        }
        return;
    }
    double price(int deep){
        double temp = p;
        double rate = 1+r/100.0;
        temp = temp*pow(rate,deep);
        return temp;
    }
    int main(){
        scanf("%d %lf %lf",&n,&p,&r);
        for(int i = 0;i<n;i++){
            int childnum;
            scanf("%d",&childnum);
            if(childnum==0){
                Node[i].isretail = true;
                scanf("%d",&Node[i].amount);
            }else{
                for(int j = 0;j < childnum;j++){
                    int childid;
                    scanf("%d",&childid);
                    Node[i].child.push_back(childid);
                }
            }    
        }
        updatedeep(0);
        double total = 0;
        for(int i = 0;i<n;i++){
            if(Node[i].isretail==true){
                total += Node[i].amount*price(Node[i].deep);
            }
        }
        printf("%.1f",total);
        return 0;
    }
    
    
  • 相关阅读:
    使用VisualStudio2015开发QT项目
    界面控件
    SmartGit 试用过期
    视图和模型变换
    模型变换和视图变换
    一元二次方程
    论cudnn与cuda之间的关系,和实际例子测试。
    在Ubuntu 18.04上安装Tensorflow
    ubuntu14.04安装CUDA8.0
    Windows10系统远程桌面连接出现卡顿如何解决
  • 原文地址:https://www.cnblogs.com/shuibeng/p/13633737.html
Copyright © 2011-2022 走看看