1. 程式人生 > 遊戲 >獻給小女生的開放世界遊戲 《小馬精靈》夏季發售

獻給小女生的開放世界遊戲 《小馬精靈》夏季發售

技術標籤:天梯賽dfs

想想是不是因為忘記存值導致結果不對
還有注意理解遞迴裡的return

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
//const int maxn = 100010;
struct node
{
	double data,v,power;
	vector<int> child;
	int leveal;
}Node[maxn];
int n;
double z,r,
sum; void dfs(int index, int leveal) { if(Node[index].data == 0) { sum += z* pow((1 - r),leveal) * Node[index].power; return; } for(int i = 0; i < Node[index].child.size(); i++) { dfs(Node[index].child[i], leveal+1); } } int main() { for(int i = 0; i < maxn; i++) { Node[i].power =
1; } cin >> n >> z >>r; r = r * 0.01; for(int i = 0; i < n; i++) { int k,x,b; cin >> k; Node[i].data = k; if(k == 0) cin >> Node[i].power; else { for(int j = 0; j < k; j++) { cin >> b; Node[i].child.push_back(b); } } } dfs(
0,0); cout << (int)sum; }