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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/283789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/283789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/283789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

找數組里沒出現的數

題目&#xff1a;給定整數的數組&#xff0c;其中1≤A [1]≤ N&#xff08;N數組的大小&#xff09;&#xff0c;一些元素出現兩次以及其他出現一次。找到不出現在這個數組中的[1&#xff0c;n ]包含的所有元素。 思路&#xff1a;map的思想。。。。 public List<Integer>…

Blazor University (43)JavaScript 互操作 —— 類型安全

原文鏈接&#xff1a;https://blazor-university.com/javascript-interop/calling-dotnet-from-javascript/type-safety/類型安全在從 JavaScript 調用 .NET[1] 部分中&#xff0c;您可能已經注意到我們的 JavaScript 的第 6 行在將隨機生成的數字傳遞給 .NET 之前調用了 toStr…

分享 60 個神級 VS Code 插件

文章來源&#xff1a;juejin.cn/post/6994327298740600839 本文不做任何編輯器的比較&#xff0c;只是我本人日常使用 vscode 進行開發&#xff0c;并且比較喜歡折騰 vscode &#xff0c;會到處找這一些好玩的插件&#xff0c;于是越攢越多&#xff0c;今天給大家推薦一下我收…

URL結構分析

http://bh-lay.com/blog/14b531db64a

PHP 基礎篇 - PHP 中 DES 加解密詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、簡介 DES 是對稱性加密里面常見一種&#xff0c;全稱為 Data Encryption Standard&#xff0c;即數據加密標準&#xff0c;是一種使用密鑰加密的塊算法。密鑰長度是64位(bit)&#xff0c;超過位數密鑰被忽略。所謂對…

PerfView專題 (第一篇): 如何尋找熱點函數

一&#xff1a;背景 準備開個系列來聊一下 PerfView 這款工具&#xff0c;熟悉我的朋友都知道我喜歡用 WinDbg&#xff0c;這東西雖然很牛&#xff0c;但也不是萬能的&#xff0c;也有一些場景他解決不了或者很難解決&#xff0c;這時候借助一些其他的工具來輔助&#xff0c;是…

3四則運算軟件2016011992

使用JAVA編程語言&#xff0c;獨立完成一個3到5個運算符的四則運算練習的命令行軟件開發 基本功能要求&#xff1a; 程序可接收一個輸入參數n&#xff0c;然后隨機產生n道加減乘除&#xff08;分別使用符號-*來表示&#xff09;練習題&#xff0c;每個數字在 0 和 100 之間…

JAVA高并發多線程必須懂的50個問題

下面是Java線程相關的熱門面試題&#xff0c;你可以用它來好好準備面試。 1) 什么是線程&#xff1f; 線程是操作系統能夠進行運算調度的最小單位&#xff0c;它被包含在進程之中&#xff0c;是進程中的實際運作單位。程序員可以通過它進行多處理器編程&#xff0c;你可以使用…

Centos7設置IP為固定值

1.進入到系統的IP地址保存文件所在目錄 [rootlocalhost ~]# cd /etc/sysconfig/network-scripts 2.修改保存IP信息的文件 [rootlocalhost ~]# vim ifcfg-eth0 &#xff08;你機器上的名字有可能不是這個&#xff0c;但是是以ifcfg-eth開頭的文件&#xff09; 保存后退出 3.重啟…

為 EditorConfig 文件開啟錯誤編譯失敗

前言上次&#xff0c;我們介紹了 EditorConfig 文件可以自定義代碼樣式規則。但是&#xff0c;當我們想設置代碼樣式嚴重性&#xff0c;比如不允許編譯成功時&#xff0c;又踩了不少坑。修改無效想把 var 首選項&#xff0c;從“首選"var" 僅重構”&#xff0c;改成“…

【.NET特供-第三季】ASP.NET MVC系列:傳統WebForm站點和MVC站點執行機制對照

本文以圖形化的方式&#xff0c;從‘執行機制’方面對照傳統WebForm站點和MVC站點。請參看下面圖形&#xff1a; 一、執行機制 當我們訪問一個站點的時候&#xff0c;瀏覽器和server都是做了哪些動作呢&#xff1f; &#xff08;本文僅僅是提供一個簡單的執行過程&#xff0c;有…

hdoj1045 Fire Net(二分圖最大匹配)

題意&#xff1a;給出一個圖&#xff0c;其中有 . 和 X 兩種&#xff0c;. 為通路&#xff0c;X表示墻&#xff0c;在其中放炸彈&#xff0c;然后炸彈不能穿過墻&#xff0c;問你最多在圖中可以放多少個炸彈&#xff1f; 這個題建圖有點復雜orz。 建圖&#xff0c;首先把每一行…

c++的命名空間

一.C的命名原則namespace是指標識符的各種可見范圍&#xff0c;c的所有標識符都被定義在一個名為std的namespace中。1.<iostream>和<iostream.h>是兩個不同的文件&#xff0c;后綴為.h的頭文件c標準已經明確提出不支持了&#xff0c;早些的實現將標準庫功能定義在全…

投阿里被拒,說跳槽太頻繁!三年兩個工作,問題真的那么大嗎?

什么樣的跳槽頻率才不算頻繁&#xff1f;一位網友發問&#xff1a;投阿里被拒&#xff0c;理由是跳槽太頻繁&#xff0c;不合適。三年兩個工作&#xff0c;問題真的那么大嗎&#xff1f;網友說&#xff0c;阿里對穩定性要求非常高&#xff0c;三年兩跳和五年三跳都是紅線&#…

Linux下防御DDOS攻擊的操作梳理

DDOS的全稱是Distributed Denial of Service&#xff0c;即"分布式拒絕服務攻擊"&#xff0c;是指擊者利用大量“肉雞”對攻擊目標發動大量的正常或非正常請求、耗盡目標主機資源或網絡資源&#xff0c;從而使被攻擊的主機不能為合法用戶提供服務。 DDOS攻擊的本質是…

為什么信息化 ≠ 數字化?終于有人講明白了

作者&#xff1a;石秀峰 來源&#xff1a;談數據&#xff08;ID&#xff1a;learning-bigdata&#xff09; 近期&#xff0c;我一做數字化咨詢的朋友&#xff08;化名老王&#xff09;遇到了一個頭痛的問題&#xff1a;話說老王的團隊近期接了一個大單——一大型制造業的數字化…

JAVA代碼—算法基礎:數獨問題(Sodoku Puzzles)

JAVA代碼—算法基礎&#xff1a;數獨問題&#xff08;Sodoku Puzzles&#xff09; 數獨問題&#xff08;Sodoku Puzzles&#xff09; 數獨游戲&#xff08;日語&#xff1a;數獨 すうどく&#xff09;是一種源自18世紀末的瑞士的游戲&#xff0c;后在美國發展、并在日本得以發揚…

Linux系統恢復

實驗目的&#xff1a;熟悉了前面的啟動流程&#xff0c;系統的一個大致的啟動流程是怎樣的&#xff0c;而其中牽扯到了些許文件&#xff0c;這些文件在系統啟動時用于銜接各個步驟&#xff0c;如果這些文件損壞或缺失&#xff0c;系統將不能正常啟動&#xff0c;這次寫的內容就…

PerfView專題 (第二篇):如何尋找 C# 中的 Heap堆內存泄漏

一&#xff1a;背景 上一篇我們聊到了如何去找 熱點函數&#xff0c;這一篇我們來看下當你的程序出現了 非托管內存泄漏 時如何去尋找可疑的代碼源頭&#xff0c;其實思路很簡單&#xff0c;就是在 HeapAlloc 或者 VirtualAlloc 時做 Hook 攔截&#xff0c;記錄它的調用棧以及分…

關于 extern C的說明

在用C的項目源碼中&#xff0c;經常會不可避免的會看到下面的代碼 1 #ifdef __cplusplus 2 extern "C" { 3 #endif 4 5 /*...*/ 6 7 #ifdef __cplusplus 8 } 9 #endif 它到底有什么用呢&#xff0c;你知道嗎&#xff1f;而且這樣的問題經常會出現在面試or筆試…