1079.Total Sales of Supply Chain

【題意】
        計算一個供銷網絡中零售商賣的總價

【思路】
        DFS找到所有零售商即可,要記錄路徑的深度

【注意點】

        這題的數據範圍可達10^10,用float過不去,要用double


#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
using namespace std;

vector<vector<int>> members;
vector<bool> isRetailer;
double total,p,r;

void dfs(int index, int depth){
	if(isRetailer[index]){
		total += members[index][0]*pow(1+0.01*r,depth);
	}
	else{
		for(int i=0; i<members[index].size(); i++){
			dfs(members[index][i],depth+1);
		}
	}
}

int main(int argc, char const *argv[])
{
	int n;

	cin >> n >> p >> r;
	members.resize(n);
	isRetailer.assign(n,0);
	for(int i=0; i<n; i++){
		int k;
		cin >> k;
		if(k==0){
			isRetailer[i] = 1;
			int amount;
			cin >> amount;
			members[i].push_back(amount);
		}
		else{
			members[i].resize(k);
			for(int j=0; j<k; j++){
				cin >> members[i][j];
			}
		}
	}

	total = 0.0;
	dfs(0,0);
	total *= p;
	printf("%.1f", total);

	system("pause");
	return 0;
}


發佈了99 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章