博客
关于我
P2016 战略游戏(树形dp)
阅读量:414 次
发布时间:2019-03-05

本文共 2319 字,大约阅读时间需要 7 分钟。

????????????????????????????????????????????????????????????????????

????

?????????????????????????

  • ???????????????????????
  • ???????????????????DFS?????????????????????????
  • ?????????
    • f[u][0] ???? u ??????????????????
    • f[u][1] ???? u ?????????????????
  • ??????????????????????????????????????????????????????????????????????????????????
  • ???????????????????????
  • ????

    #include 
    #include
    using namespace std;
    int n;
    int adj[20000];
    int parent[20000];
    int children[20000][20000];
    int f[20000][2];
    void add_edge(int u, int v) {
    adj[u].push_back(v);
    adj[v].push_back(u);
    }
    void dfs(int u, int p) {
    parent[u] = p;
    for (int v : adj[u]) {
    if (v != p) {
    children[u].push_back(v);
    dfs(v, u);
    }
    }
    }
    int main() {
    cin >> n;
    adj.resize(n);
    for (int i = 0; i < n; ++i) {
    adj[i].clear();
    }
    for (int i = 0; i < n; ++i) {
    int k, x1;
    cin >> x1 >> k;
    for (int j = 0; j < k; ++j) {
    int y1;
    cin >> y1;
    add_edge(x1, y1);
    }
    }
    parent[0] = -1;
    children[0].clear();
    dfs(0, -1);
    for (int u = 0; u < n; ++u) {
    f[u][0] = 0;
    f[u][1] = 0;
    }
    stack
    stack;
    stack.push(0);
    bool visited[20000];
    visited[0] = true;
    while (!stack.empty()) {
    int u = stack.top();
    stack.pop();
    vector
    child_indices;
    for (size_t i = 0; i < children[u].size(); ++i) {
    if (!visited[children[u][i]]) {
    child_indices.push_back(i);
    }
    }
    for (size_t i = 0; i < child_indices.size(); ++i) {
    int v = children[u][child_indices[i]];
    if (!visited[v]) {
    visited[v] = true;
    stack.push(v);
    }
    }
    for (size_t i = 0; i < children[u].size(); ++i) {
    int v = children[u][i];
    if (!visited[v]) {
    f[u][0] = f[v][1];
    f[u][1] += f[v][0];
    }
    }
    }
    int result = min(f[0][0], f[0][1]);
    cout << result << endl;
    }

    ????

  • ??????????????????????????
  • DFS????????????????????
  • ?????????????????????
  • ????????????????????????????????????????
  • ????????????????
  • ??????????????????????????????????

    转载地址:http://egpzz.baihongyu.com/

    你可能感兴趣的文章
    Nginx的使用总结(三)
    查看>>
    Nginx的使用总结(二)
    查看>>
    Nginx的可视化神器nginx-gui的下载配置和使用
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡和反相代理的配置
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    nginx转发端口时与导致websocket不生效
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置Https证书
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    nginx配置全解
    查看>>
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>