CODEVS 1163 访问艺术馆

来源:互联网 发布:php常用函数200个 编辑:程序博客网 时间:2024/04/30 13:52
//在dfs中用计数器时应重设变量记录当前计数,因为计数器随时改变。 #include<bits/stdc++.h>using namespace std;int t, num, ans;int dp[201][601];//第i个点可花j秒收集多少幅画。 int dfs(int rt){    int ti, sum;    cin >> ti >> sum;    ti *= 2;    int son = ++num;    if(!sum){        int s1 = dfs(son);        int s2 = dfs(son);        for(int i = 0; i <= t-ti; i++)            for(int j = 0; j <= t-ti-i; j++)                dp[son][i+j+ti] = max(dp[son][i+j+ti], dp[s1][i] + dp[s2][j]);    }    else        for(int i = 1; i <= sum; i++)            dp[son][5*i+ti] = i;    return son;}int main(){    cin >> t;    dfs(0);    for(int i = 1; i <= t; i++){        ans = max(dp[1][i], ans);        //cout << dp[1][i] << endl;    }    cout << ans << endl;    return 0;}
0 0