UVALive - 5088 Alice and Bob's Trip 树形dp

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3089

题意大体是男想要更大的路权,女想要更少的路权,但还要保证路权在LR范围内

树形dp从下往上走男生选的时候,就选一个较大的且在范围内的,女选的时候就选一个较小的且在范围内的,

找了好多题解,hdu都是过不了的。只能过UVAlive上的,应该是数据谁,不过这个思路挺好的。。。

#include
#include
#include
#define inf 0x3f3f3f3f
using namespace std;
struct node
{
    int ne,cost;
};
vectorw[500005];
int dp[500005];
int l,r;
long long sum;
int dfs(int x, bool flog, int t)
{
    if(flog)
        dp[x]=-inf;
    else
        dp[x]=inf;
    if(w[x].size()==0)
    {
        dp[x]=t;
        return 0;
    }
    for(int i=0;i=l)
        {
            dp[x]=max(dp[x], dp[w[x][i].ne]+t);
        }
        else if(!flog && dp[w[x][i].ne]+t<=r && dp[w[x][i].ne]+t>=l)
        {
            dp[x]=min(dp[x], dp[w[x][i].ne]+t);
        }
    }
}

int main()
{
    int n,a,b,c;
    while(~scanf("%d%d%d",&n,&l,&r))
    {
        for(int i=0;i=l)
            printf("%d\n",dp[0]);
        else
            printf("Oh, my god!\n");
    }
    return 0;
}


你可能感兴趣的:(树形dp)