日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

L2-020. 功夫传人

發布時間:2023/12/6 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 L2-020. 功夫传人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一門武功能否傳承久遠并被發揚光大,是要看緣分的。一般來說,師傅傳授給徒弟的武功總要打個折扣,于是越往后傳,弟子們的功夫就越弱…… 直到某一支的某一代突然出現一個天分特別高的弟子(或者是吃到了靈丹、挖到了特別的秘笈),會將功夫的威力一下子放大N倍 —— 我們稱這種弟子為“得道者”。

這里我們來考察某一位祖師爺門下的徒子徒孫家譜:假設家譜中的每個人只有1位師傅(除了祖師爺沒有師傅);每位師傅可以帶很多徒弟;并且假設輩分嚴格有序,即祖師爺這門武功的每個第i代傳人只能在第i-1代傳人中拜1個師傅。我們假設已知祖師爺的功力值為Z,每向下傳承一代,就會減弱r%,除非某一代弟子得道。現給出師門譜系關系,要求你算出所有得道者的功力總值。

輸入格式:

輸入在第一行給出3個正整數,分別是:N(<=105)——整個師門的總人數(于是每個人從0到N-1編號,祖師爺的編號為0);Z——祖師爺的功力值(不一定是整數,但起碼是正數);r ——每傳一代功夫所打的折扣百分比值(不超過100的正數)。接下來有N行,第i行(i=0, ..., N-1)描述編號為i的人所傳的徒弟,格式為:

Ki?ID[1] ID[2] ... ID[Ki]

其中Ki是徒弟的個數,后面跟的是各位徒弟的編號,數字間以空格間隔。Ki為零表示這是一位得道者,這時后面跟的一個數字表示其武功被放大的倍數。

輸出格式:

在一行中輸出所有得道者的功力總值,只保留其整數部分。題目保證輸入和正確的輸出都不超過1010

輸入樣例:

10 18.0 1.00 3 2 3 5 1 9 1 4 1 7 0 7 2 6 1 1 8 0 9 0 4 0 3

輸出樣例:

404 #include<iostream> #include<vector> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<set> #include<functional> using namespace std;const int N = 1e5 + 5;struct node{vector<int> ID;double sum = 0.0, B = 0.0;bool is = false; }Node[N];double z, r, v; int n, u, k;void BFS(){queue<int> Q;Q.push(0);double sum = 0;while(!Q.empty()){int t = Q.front(); Q.pop();if(Node[t].is) { sum += Node[t].sum * Node[t].B; }for(auto i : Node[t].ID){Node[i].sum = Node[t].sum * (1 - r * 0.01);Q.push(i);}}cout << int(sum) << endl; } int main(){cin >> n >> z >> r;Node[0].sum = z;for(int i = 0; i < n; i++){cin >> k;if(k == 0){cin >> v;Node[i].is = true;Node[i].B = v; continue;}while(k --){cin >> u;Node[i].ID.push_back(u);}}BFS(); }

?

轉載于:https://www.cnblogs.com/Pretty9/p/8635256.html

總結

以上是生活随笔為你收集整理的L2-020. 功夫传人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。