L2-020. 功夫传人(数据结构)
2018-01-31 19:00
246 查看
【题目链接】
https://www.patest.cn/contests/gplt/L2-020
https://www.patest.cn/contests/gplt/L2-020
题目意思
祖师爷的功力值为Z,每向下传承一代,就会减弱r%,除非某一代弟子得道。现给出师门谱系关系,要求你算出所有得道者的功力总值。解题思路
利用vector存储师徒关系,然后从祖师开始dfs,求出总和。值得注意的是输出用%.0lf会有一组数据过不了,要强制转换LL才过代码部分
#include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #include<set> using namespace std; #define INF 0x3f3f3f #define LL long long const int maxn=1e5+5; using namespace std; vector<int>a[maxn]; double z,r; int k,b[maxn],n; double dfs(int x,int t) { double s=0; if (a[x].size()==0) s+=b[x]*z*pow(1-r/100,t); else { for (int i=0;i<a[x].size();i++) s+=dfs(a[x][i],t+1); } return s; } int main() { cin>>n>>z>>r; for (int i=0;i<n;i++) { cin>>k; if (k==0) cin>>b[i]; else { int t; for (int j=0;j<k;j++) { cin>>t; a[i].push_back(t); } } } printf("%lld\n",(LL)(dfs(0,0))); //printf("%.0f\n",dfs(0,0)); return 0; }
相关文章推荐
- PAT - 天梯赛 L2-020 功夫传人
- L2-020. 功夫传人
- [PAT][GPLT][CCCC]L2-020. 功夫传人
- 2017年团体程序设计天梯赛-大区赛 L2-020. 功夫传人
- L2-020. 功夫传人 CCCC-DFS
- L2-020. 功夫传人 CCCC-DFS
- 团体程序设计天梯赛 L2-020. 功夫传人(多叉树搜索)
- PAT天梯赛 L2-020. 功夫传人 【DFS】
- 天梯赛 L2-020. 功夫传人
- L2-020. 功夫传人 CCCC-DFS
- L2-020. 功夫传人
- PAT-练习集-L2-020. 功夫传人
- PAT L2-020 功夫传人 (17分并查集)
- L2-020. 功夫传人
- L2-020. 功夫传人
- CCCC天梯赛 L2-020. 功夫传人 + L3-013. 非常弹的球
- L2-020. 功夫传人 CCCC-DFS
- PAT--L2-020. 功夫传人
- (vector二维数组或者直接用数组)L2-020. 功夫传人
- L2-020. 功夫传人 CCCC-DFS